程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> listview-點擊 ListView 中的 item,然後改變行的背景顏色

listview-點擊 ListView 中的 item,然後改變行的背景顏色

編輯:編程綜合問答
點擊 ListView 中的 item,然後改變行的背景顏色

我想使用BaseAdapter 在ListView中顯示item。我在BaseAdapter使用下面的代碼:

@Override
    public View getView(final int position, View convertView, ViewGroup parent) {
    //...
    convertView.setOnTouchListener(new OnTouchListener() {
@Override
    public boolean onTouch(View v, MotionEvent event) {
       switch(event.getAction()) {
         case MotionEvent.ACTION_DOWN:
         v.setBackgroundResource(R.drawable.ic_corner_four_click);
     break;

         case MotionEvent.ACTION_UP:
         v.setBackgroundResource(R.drawable.ic_corner_four);
     break;
     }

     return false;
     }
   });
}

當點擊item時,背景就變成 ic_corner_four_click。但是當放開手指或移動到其它的item,就不會再更新成 ic_corner_four。如何修改?

最佳回答:


你完全可以只用一個selector來做,類似於:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_focused="true"
          android:state_pressed="false"
          android:drawable="@drawable/list_focus_color" />
    <item android:state_focused="true"
          android:state_pressed="true"
          android:drawable="@drawable/list_focus_color" />
    <item android:state_focused="false"
          android:state_pressed="true"
          android:drawable="@drawable/list_focus_color" />
    <item android:drawable="@drawable/list_normal_color" />
</selector>

然後設置成item的整個layout的background

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved