2014-07-09 83 views
0

UPDATE的TextView和Button - 鼠標點擊作品,OnItemClick不起作用

我的按鈕是大如各列表項的看法 - 也許這會導致什麼問題?是否可以按一次,並讓OnItemclick和OnClick都響應?


我有一個列表視圖有兩個文字和一個按鈕。我知道有很多問題需要發佈,但我已經閱讀了很多問題,似乎沒有人能夠解決問題。

我想讓列表視圖的每個視圖的OnItemClick工作。 我也希望列表視圖的每個視圖內的按鈕的OnClick工作。

只有按鈕的onclick似乎迴應

在我的xml我已成立android:focusable="false"的按鈕。對於textviews我已經設置android:textIsSelectable="false" android:clickable="false" android:focusable="false"

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:background="@drawable/rectangle_order" 
    android:layout_gravity="center_horizontal" 
    > 
<RelativeLayout 
    android:layout_width="wrap_content" 
    android:layout_height="@dimen/order_height" 
    > 

     <Button 
      android:id="@+id/img" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:focusable="false" 
      /> 


     <TextView 
      android:id="@+id/txt" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_centerInParent="true" 
      android:textStyle="bold" 
      android:textSize="@dimen/text_size" 
      android:textColor="@color/white" 
      android:rotation="90" 
      android:textIsSelectable="false" 
      android:clickable="false" 
      android:focusable="false" 
      /> 

     <TextView 
      android:id="@+id/timer" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:textStyle="bold" 
      android:textSize="@dimen/timer_size" 
      android:rotation="90" 
      android:layout_alignParentBottom="true" 
      android:layout_alignParentRight="true" 
      android:layout_marginBottom="29dp" 
      android:textIsSelectable="false" 
      android:clickable="false" 
      android:focusable="false" 
      /> 
</RelativeLayout> 
</RelativeLayout> 

這是我的列表視圖的佈局:在我的主要活動

Button b = (Button) rowView.findViewById(R.id.img); 
    b.setBackgroundResource(R.color.pending); 
    b.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      if(numberOfTimers < 2){ 
       view.setBackgroundResource(R.color.ongoing); 
       countDownTimer = new MyCountDownTimer(TIME_PANINI, 1000,timerTextView, view); 
       countDownTimer.start(); 
      } 
     } 
    }); 

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_weight="0.5" 
    android:layout_width="@dimen/order_height" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center_horizontal" 
    android:orientation="vertical" 
    > 

    <ListView 
     android:id="@+id/list" 
     android:layout_height="wrap_content" 
     android:layout_width="wrap_content" 
     android:layout_weight="0.5" 
     android:divider="@android:color/transparent" 
     android:dividerHeight="10.0sp" 
     android:scrollbars="none" 
     > 
    </ListView> 

</RelativeLayout> 

在我的適配器的GetView我有我有一個onItemClickListener設置爲listView:

list.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
      @Override 
      public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) { 
       Log.d(TAG_MAIN, "we are in select onitemclicklistener"); 
       Toast.makeText(getApplicationContext(),"BOOOOH", Toast.LENGTH_SHORT).show(); 
      } 
     }); 
+0

您是否嘗試使用textview的android:duplicateParentState =「true」? –

+0

是的,試過這個,OnItemClickListener仍然沒有迴應。 –

+0

使ListView可調焦 –

回答

0

嘗試用OnTouchListener替換OnClickListener。

像這樣:

b.setOnTouchListener(new OnTouchListener() { 
    @Override 
    public boolean onTouch(View v, MotionEvent event) { 

     if (event.getAction()==MotionEvent.ACTION_DOWN){ 
      if(numberOfTimers < 2){ 
       view.setBackgroundResource(R.color.ongoing); 
       countDownTimer = new MyCountDownTimer(TIME_PANINI, 1000,timerTextView, view); 
       countDownTimer.start(); 
      } 
     } 
     return false; 
    } 
};); 

當你在這個監聽器返回false,你的意思是「嘿,我不會與動作(按下)進行,請讓動作到下一個視圖」

+0

謝謝。實現了這一點,但按鈕一直阻止該動作進入列表視圖的視圖。 –