在 Viewholder 中更改颜色语句不起作用;只有一个语句可以正常工作

Changing color statements in Viewholder don't work; only one statement works properly

我正在尝试为 recyclerview 监听点击事件并更改文本和编辑文本的颜色制作一个适配器。 当我只添加

text.settextView.setHighlightColor(Color.parseColor("~~"));

它工作正常但是当我使用 if-else 并添加

text.settextView.setHighlightColor(Color.parseColor("~~"));

不行。。。一开始我以为是跳过了某些语句,所以我加了Log.i查看,我认为没有跳过的语句。

static class ViewHolder extends RecyclerView.ViewHolder{
            public  MyCustomEditTextListener myCustomEditTextListener2;
            TextView textView;
            EditText editText;
            public ViewHolder(@NonNull View itemView, MyCustomEditTextListener myCustomEditTextListener2) {
                super(itemView);
                textView=itemView.findViewById(R.id.textView2);
                editText=itemView.findViewById(R.id.editText2);
                this.myCustomEditTextListener2=myCustomEditTextListener2;
                this.editText.addTextChangedListener(myCustomEditTextListener2);
                textView.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View view) {
                        int pos=getAdapterPosition();
                        if(swtich==0) {   //swtich is defined in adapter class(static int swtich=0;)
                            Log.i("info", "click event & swith");
                            textView.setHighlightColor(Color.parseColor("#e1bee7"));
                            //editText.setHighlightColor(Color.parseColor("#FFF1FF"));
                            swtich = 1;
                        }else if(swtich==1){


                            textView.setHighlightColor(Color.parseColor("#FFFFFF"));
                            editText.setHighlightColor(Color.parseColor("#000000"));
                            swtich=0;}


                        if(pos!=RecyclerView.NO_POSITION){
                            if(mListener!=null){
                                mListener.onItemClick(view,pos);


                            }
                        }
                    }
                });
            }

这样试试。您需要 else 条件(而不是 if-else):

textView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            int pos=getAdapterPosition();
            if(swtich==0) {   //swtich is defined in adapter class(static int swtich=0;)
                Log.i("info", "click event & swith");
                textView.setHighlightColor(Color.parseColor("#e1bee7"));
                editText.setHighlightColor(Color.parseColor("#FFF1FF"));
                swtich = 1;
            }else{
                textView.setHighlightColor(Color.parseColor("#FFFFFF"));
                editText.setHighlightColor(Color.parseColor("#000000"));
                swtich=0;
            }


            if(pos!=RecyclerView.NO_POSITION){
                if(mListener!=null){
                    mListener.onItemClick(view,pos);
                }
            }
        }
    });