Próbuję wykonać adapter do recyckerview Słuchaj, kliknij opcję Wydarzenie i zmień kolor tekstu i edittext. Kiedy dodam tylko

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

Działa poprawnie, gdy używam if-else i dodaj

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

Nie działa ... na początku myślałem, że pewne oświadczenie jest pomijane, więc dodałem Log.i, aby sprawdzić i myślę, że nie ma pominiętych stwierdzeń.

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


                            }
                        }
                    }
                });
            }
-1
button 19 marzec 2020, 11:03

1 odpowiedź

Najlepsza odpowiedź

Spróbuj tak. Musisz być warunkiem (zamiast if-innym):

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);
                }
            }
        }
    });
0
DB377 19 marzec 2020, 09:02