Android Listview选择器问题

时间:2012-10-04 07:12:56

标签: android android-listview

我有ListView,列表的每一行都有TextViewImageView。我正在使用ImageView的选择器,我希望当我只点击该ImageView行时,它会发生变化,但是当我点击该行上的任何其他地方时ImageView不受影响。

选择代码

<selector xmlns:android="schemas.android.com/apk/res/android" >
    <item
        android:drawable="@drawable/download_h"
        android:state_pressed="true"/>

    <item android:drawable="@drawable/download"/>
</selector>

1 个答案:

答案 0 :(得分:0)

自定义列表行..

<LinearLayout android:id="@+id/RootView"        
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerVertical="true"
                >
    <TextView android:id="@+id/textView"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:textSize="16sp"/>
    <ImageView android:id="@+id/img"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                /> 

现在在你的适配器::

LinearLayout linearLayout = (LinearLayout) v.findViewbyid(R.id.RootView);

linearLayout.setOnTouchListener(new OnTouchListener() {                 
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                if(event.getAction()==MotionEvent.ACTION_DOWN && event.getAction()!=MotionEvent.ACTION_MOVE){
                    imgView.setBackgroundResource(R.drawable.pressed_state);
                }else
                    btnArrow.setBackgroundResource(R.drawable.normal_stat);
                return false;
            }
        });

对我有用...... 希望这有帮助。