2017-08-24 70 views
0

我有一些項目的列表和每個項目的onclick我打開alertdialog,但有時2個dialoges打開,因爲兩個recyclerview的項目同時點擊,以避免這種情況,我認爲我應該刪除addOnItemTouchListner,但如何刪除它?一旦一個項目被點擊,移除Recyclerview addOnItemTouchListner?

+5

更好的方法是設置一個標誌並檢查onItemTouchListener中是否爲true或false。 –

+0

但我認爲他們必須是一個正確的方法來處理這個問題。 –

+0

使用布爾變量,你可以檢查你自己的邏輯 –

回答

0

你應該爲ItemView控件在ViewHolder執行,而不是OnItemTouchListener因爲OnItemTouchListener被設置OnClickListener將調用2次,當你點擊一個ItemView控件,用於上下行動

嘗試設置OnClickListener或檢查行動該方法onTouchEvent()

if (event.getAction() == MotionEvent.ACTION_UP) { 
     // do the dialog showing here 
} 

EDIT

class ViewHolder extends RecyclerView.ViewHolder { 
    ViewHolder(View itemView) { 
     super(itemView); 
     ... 
     ... 
     itemView.setOnClickListener(new OnClickListener() { 
      @Override 
      public void onClick(View v) { 
        //call the dialog here 
        // If you need context here use v.getContext() to show the dialog 
      } 
     ); 
    } 
} 
+0

這我必須單獨添加對於我的項目中的特定recyclerview –

+0

@NikhilJadhav你在找什麼呢? –

+0

一個全局解決方案,將爲我的項目全部工作 –

相關問題