Android 更改Viewholder don'中的颜色语句;不工作;只有一个语句可以正常工作
我正在尝试为recyclerview listen click事件制作一个适配器,并更改文本和edittext的颜色。 当我加上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来检查,我认为没有
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);
}
}
}
});