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

一个全局解决方案,将为我的项目全部工作 –

相关问题