注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

姑射道人的博客

博客新地址:nixuchen.com

 
 
 

日志

 
 

ListView item点击不变色  

2012-12-07 11:27:23|  分类: android |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
java代码:
  1. <ListView
  2. android:id="@+id/contact_listview"
  3. android:layout_width="wrap_content"
  4. android:layout_height="400dip"
  5. android:divider="#b9b9b9"
  6. android:dividerHeight="1px"
  7. android:cacheColorHint="#00000000"
  8. android:listSelector="@drawable/list_selector"
  9. android:headerDividersEnabled="true">
  10. </ListView>
复制代码
       2、在drawable文件夹中见一个list_selector.xml文件,不用写什么内容,只是用来把系统自带的给覆盖掉。

java代码:
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <selector xmlns:android="http://schemas.android.com/apk/res/android">
  3. </selector>
复制代码
       3、在values文件夹中新建一个colors.xml文件,用来写颜色值:

java代码:
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <resources>
  3. <color name="list_item_focus">#626fcd</color>
  4. </resources>
复制代码
       4、在java文件里定义一个私有变量private View itemView;用来保存上一次选中的listitem。
       5、在下面三种事件中改变背景色

java代码:
  1. //listview的itme选中事件

  2. private OnItemSelectedListener itemSelectedListener = new OnItemSelectedListener() {
  3. @Override
  4. public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
  5. itemBackChanged(arg1);
  6. position = arg2;
  7. }

  8. @Override
  9. public void onNothingSelected(AdapterView<?> arg0) {
  10. }

  11. };

  12. //长按事件
  13. private OnItemLongClickListener itemLongClickListener = new OnItemLongClickListener() {
  14. @Override
  15. public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
  16. itemBackChanged(view);
  17. ContactGrpMemActivity.this.position = position;
  18. return false;
  19. }
  20. };

  21. //listview的item点击事件
  22. private OnItemClickListener itemClicklistener = new OnItemClickListener() {
  23. @Override
  24. public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
  25. long arg3) {
  26. Log.i(TAG, "**************onItemClick arg0 is " + arg0.getClass().getName());
  27. Log.i(TAG, "**************onItemClick arg1 is " + arg1.getId());
  28. Log.i(TAG, "**************onItemClick arg2 is " + arg2);
  29. Log.i(TAG, "**************onItemClick arg3 is " + arg3);
  30. itemBackChanged(arg1);
  31. position = arg2;
  32. }
  33. };

  34. //改变listitem的背景色
  35. private void itemBackChanged(View view) {
  36. //改变当前点击的listitem中textview的字体颜色
  37. TextView contactName = (TextView)view.findViewById(R.id.contactName);
  38. TextView contactTel = (TextView)view.findViewById(R.id.contactTel);
  39. contactName.setTextColor(Color.WHITE);
  40. contactTel.setTextColor(Color.WHITE);
  41. if(itemView == null) itemView = view;
  42. if(itemView != view) {
  43. //改变上次点击点击的listitem中textview的字体颜色
  44. contactName = (TextView)itemView.findViewById(R.id.contactName);
  45. contactTel = (TextView)itemView.findViewById(R.id.contactTel);
  46. contactName.setTextColor(Color.BLACK);
  47. contactTel.setTextColor(Color.BLACK);
  48. }

  49. itemView.setBackgroundColor(android.R.color.transparent);
  50. //将上次点击的listitem的背景色设置成透明
  51. view.setBackgroundResource(R.color.list_item_focus);
  52. //设置当前点击的listitem的背景色
  53. itemView = view;

  54. }
  评论这张
 
阅读(8869)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017