Я начинающий, и я внедряю Фрагмент в 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;
}
}
}
Пожалуйста, помогите, как я могу это исправить.
Заранее спасибо.