Как поменять цвет кнопки в андроид, и вернуть обратно дефолтный цвет если нажата другая кнопка?
Как мне поменять цвет нажатой кнопки и вернуть его если нажата другая?
В этом коде я устанавливаю состояние кнопок, которое дальше использую. Но имеено в этом коде мне надо понять, как поменять цвет кнопки в зависимости от того, какую нажал юзер.
Нажата кнопка 1 - изменила свой серый цвет на зеленый. Потом юзер нажал кнопку 2 - кнопка 2 стала зеленой, а кнопка 1 стала снова серой.
Пробовал селекторамие но не получилось, возможно не правильно что-либо делал, при запуске приложения у меня открывался код xml-файла, где были селекторы прописаны, а приложение не запускалось.
Кнопки у меня прописаны так androidx.appcompat.widget.AppCompatButton
public void onClickVibro(View view) {
int id = view.getId();
if (id == R.id.buttonVib1) {
state = 1;
} else if (id == R.id.buttonVib2) {
state = 2;
} else if (id == R.id.buttonVib3) {
state = 3;
} else if (id == R.id.buttonVib4) {
state = 4;
}
}
Ответы (1 шт):
Для изменения цвета элементов управления используйте Button.setBackgroundColor(myColor);
, где myColor-число в типе int, хранящий значения ARGB, для его получения используйте myColor = Color.argb(Alpha, Red, Green, Blue);
Пример:
View.OnClickListener OCL1= v-> {
Button1.setBackgroundColor(Color.rgb( 100, 100, 100));
Button2.setBackgroundColor(Color.rgb( 0, 200, 0));
};
View.OnClickListener OCL2= v-> {
Button2.setBackgroundColor(Color.rgb( 100, 100, 100));
Button1.setBackgroundColor(Color.rgb( 0, 200, 0));
};
Button1.setOnClickListener(OCL1);
Button2.setOnClickListener(OCL2);