Android 更改Viewholder don'中的颜色语句;不工作;只有一个语句可以正常工作

Android 更改Viewholder don'中的颜色语句;不工作;只有一个语句可以正常工作,android,android-recyclerview,onclicklistener,Android,Android Recyclerview,Onclicklistener,我正在尝试为recyclerview listen click事件制作一个适配器,并更改文本和edittext的颜色。 当我加上 text.settextView.setHighlightColor(Color.parseColor("~~")); 它工作正常,但当我使用if-else并添加 text.settextView.setHighlightColor(Color.parseColor("~~")); 它不起作用。。。起初我认为跳过了一些语句,所以我添加了Log.I来检查,我认为没有

我正在尝试为recyclerview listen click事件制作一个适配器,并更改文本和edittext的颜色。 当我加上

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):


您在哪里定义了
swtich
?它的价值是什么?(您只测试了0和1,这可能是其他的吗?)我将它添加到顶部。公共类webadapter扩展了RecyclerView。Adapter{static int T=0;ArrayList=new ArrayList();接受的回答说明这是一个
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);
                }
            }
        }
    });