Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/194.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Recyclerview滚动触发onclick_Java_Android_Android Recyclerview_Scroll_Onclicklistener - Fatal编程技术网

Java Recyclerview滚动触发onclick

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

我对reyclerview的
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);