2012-10-04 54 views
0

我有一個ListView,列表中的每一行都有TextViewImageView。我正在使用ImageView的選擇器,我希望當我只點擊該行的那個ImageView時,它將會改變,但當我點擊行上的其他任何地方時,ImageView將不受影響。Android列表選擇器故障

選擇代碼

<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> 
+0

所以你想當你點擊除ImageView以外的任何地方,你想讓你的ImageView回到默認? –

+0

不,我希望當我點擊ImageView時,它會改變一會兒,恢復到它的預覽圖像,如果我按下那一行的其他地方,那麼應該沒有任何動作 – user1581121

+0

Lemme看到你的選擇器實現代碼? –

回答

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; 
      } 
     }); 

它適用於我... 希望這可以幫到..