изменение цвета кнопки в другом фрагменте - PullRequest
0 голосов
/ 22 апреля 2020

Я начинающий, и я внедряю Фрагмент в Viewpager2.

Количество фрагментов равно 2. И у каждого из них есть 2 кнопки.

Я пытаюсь это всякий раз, когда любая кнопка is clicked.its цвет фона изменяется до тех пор, пока не нажата любая другая кнопка.

Но проблема, с которой я сталкиваюсь, предположим, что нажата кнопка A первого фрагмента, а затем ее цвет меняется. А когда нажимается кнопка B 1-го фрагмента, то кнопка A возвращается к цвету по умолчанию, а также изменяется цвет кнопки B.

Но если нажать кнопку C фрагмента 2, то цвет кнопки C изменяется, это хорошо. Но кнопка A не меняет цвет по умолчанию.

Нет эффекта нажатия кнопок при изменении цвета кнопок, если кнопки принадлежат другому фрагменту.

код

 public class ScreenSlidePageFragment extends Fragment {

 private Button button1,button2,button3,button4;
 static private int turn=0;

 public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View v1=(ViewGroup) inflater.inflate(R.layout.fragment_screen_slide_page1, container, false);
        View v2= (ViewGroup) inflater.inflate(R.layout.fragment_screen_slide_page2, container, false);


        button1=v1.findViewById(R.id.button1);
        button2=v1.findViewById(R.id.button2);
        button3=v1.findViewById(R.id.button3);

        button4=v2.findViewById(R.id.button4);


        button1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {


                button2.setPressed(false);
                button2.setSelected(false);

                button3.setPressed(false);
                button3.setSelected(false);


                button4.setSelected(true);
                button4.setPressed(true);
                button1.setSelected(true);
                button1.setPressed(true);

            }
        });

         button2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {




                button3.setPressed(false);
                button3.setSelected(false);


                button4.setSelected(false);
                button4.setPressed(false);
                button1.setSelected(false);
                button1.setPressed(false);
                 button2.setPressed(true);
                button2.setSelected(true);

            }
        });


         button3.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {


                button2.setPressed(false);
                button2.setSelected(false);
                button4.setSelected(false);
                button4.setPressed(false);
                button1.setSelected(false);
                button1.setPressed(false);
                button3.setPressed(true);
                button3.setSelected(true);


            }
        });

         button4.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {


                button2.setPressed(false);
                button2.setSelected(false);

                button3.setPressed(false);
                button3.setSelected(false);



                button1.setSelected(false);
                button1.setPressed(false);
                button4.setSelected(true);
                button4.setPressed(true);

            }
        });


        if (turn == 0) {
            turn=1;
            return v1;

        }
        else
        {
            turn = 0;
            return v2;


        }


    }
}

Пожалуйста, помогите, как я могу это исправить.

Заранее спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...