Java Recyclerview滚动触发onclick
我对reyclerview的Java Recyclerview滚动触发onclick,java,android,android-recyclerview,scroll,onclicklistener,Java,Android,Android Recyclerview,Scroll,Onclicklistener,我对reyclerview的OnClickListener有问题。滚动触发OnClick中的setCardBackgroundColor方法。我在方法中添加了一个断点,但调试器不会在单击OnClick或方法时停止。当`deletable为false时,不会触发该方法。我很困惑,我不是本地人,对不起我的语言。任何帮助都将不胜感激 适配器中的我的侦听器: @Override public boolean onLongClick(View
OnClickListener
有问题。滚动触发OnClick
中的setCardBackgroundColor
方法。我在方法中添加了一个断点,但调试器不会在单击OnClick
或方法时停止。当`deletable为false时,不会触发该方法。我很困惑,我不是本地人,对不起我的语言。任何帮助都将不胜感激
适配器中的我的侦听器:
@Override
public boolean onLongClick(View view) {
if(recyclerview.getScrollState() == RecyclerView.SCROLL_STATE_IDLE){
deletetasks.setVisibility(View.VISIBLE);
cancelselection.setVisibility(View.VISIBLE);
deletable = true;
int id = (int) h.getItemId();
selectedidlist.add(id);
itemswillremove.add(programtasklist.get(dateortasklist.get(position).getTaskrow()));
h.taskcard.setCardBackgroundColor(ContextCompat.getColor(h.itemView.getContext(), R.color.colormainlighter));
Log.e("tag","longclick");
}
return true;
}
});
h.taskcard.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if(recyclerview.getScrollState() == RecyclerView.SCROLL_STATE_IDLE){
int id = (int) holder.getItemId();
if((deletable) && !(selectedidlist.contains(id))){
selectedidlist.add(id);
itemswillremove.add(programtasklist.get(dateortasklist.get(position).getTaskrow()));
h.taskcard.setCardBackgroundColor(ContextCompat.getColor(h.itemView.getContext(), R.color.colormainlighter));
Log.e("tag","colormainlighterclick");
}else if ((selectedidlist.contains(id))){
selectedidlist.remove(Integer.valueOf(id));
itemswillremove.remove(programtasklist.get(dateortasklist.get(position).getTaskrow()));
h.taskcard.setCardBackgroundColor(Color.WHITE);
Log.e("tag","whiteclick");
}
else {
//TODO TaskDetail
}
}
}
});
tdtodorv.setHasFixedSize(false);
tdtodorv.setLayoutManager(new LinearLayoutManager(this));
toDoListAdapter = new ToDoListAdapter(tasksSQLiteProcesses.tolistbyday(), tasksSQLiteProcesses.tolistall(), tasksSQLiteProcesses.getdayslist(tasksSQLiteProcesses.tolistbyday()), deletetasks, cancelselection);
toDoListAdapter.setHasStableIds(true);
tdtodorv.setAdapter(toDoListAdapter);
我的活动:
@Override
public boolean onLongClick(View view) {
if(recyclerview.getScrollState() == RecyclerView.SCROLL_STATE_IDLE){
deletetasks.setVisibility(View.VISIBLE);
cancelselection.setVisibility(View.VISIBLE);
deletable = true;
int id = (int) h.getItemId();
selectedidlist.add(id);
itemswillremove.add(programtasklist.get(dateortasklist.get(position).getTaskrow()));
h.taskcard.setCardBackgroundColor(ContextCompat.getColor(h.itemView.getContext(), R.color.colormainlighter));
Log.e("tag","longclick");
}
return true;
}
});
h.taskcard.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if(recyclerview.getScrollState() == RecyclerView.SCROLL_STATE_IDLE){
int id = (int) holder.getItemId();
if((deletable) && !(selectedidlist.contains(id))){
selectedidlist.add(id);
itemswillremove.add(programtasklist.get(dateortasklist.get(position).getTaskrow()));
h.taskcard.setCardBackgroundColor(ContextCompat.getColor(h.itemView.getContext(), R.color.colormainlighter));
Log.e("tag","colormainlighterclick");
}else if ((selectedidlist.contains(id))){
selectedidlist.remove(Integer.valueOf(id));
itemswillremove.remove(programtasklist.get(dateortasklist.get(position).getTaskrow()));
h.taskcard.setCardBackgroundColor(Color.WHITE);
Log.e("tag","whiteclick");
}
else {
//TODO TaskDetail
}
}
}
});
tdtodorv.setHasFixedSize(false);
tdtodorv.setLayoutManager(new LinearLayoutManager(this));
toDoListAdapter = new ToDoListAdapter(tasksSQLiteProcesses.tolistbyday(), tasksSQLiteProcesses.tolistall(), tasksSQLiteProcesses.getdayslist(tasksSQLiteProcesses.tolistbyday()), deletetasks, cancelselection);
toDoListAdapter.setHasStableIds(true);
tdtodorv.setAdapter(toDoListAdapter);