Я изначально установил фон кнопки с этим кодом на onCreateView.
uc.setBackgroundResource(R.drawable.saat_button_none);
Если я изначально устанавливаю background или textColor кнопки, я хочу предотвратить изменение стиля при использовании onClick
public void onClick(View v) {
switch (v.getId()) {
case R.id.bir:
uc.setBackgroundResource(R.drawable.saat_button); //Should not work
dort.setBackgroundResource(R.drawable.saat_button_sel);
bes.setBackgroundResource(R.drawable.saat_button_sel);
}
}
Это возможно?
Обновлено: я не хочу использовать if statement, так как у меня много кнопок, я просто хочу заблокировать стиль кнопки.
Если я изначально устанавливаю background или textColor кнопки, я имею в виду
хорошо, чем то, что вы хотите на кнопке после нажатия?
Изменить фон других кнопок
посмотрите это
@ilvthsgm обновил ответ ниже, пожалуйста, просмотрите




Для этого создать собственный вид, просто расширивViewи переопределить все методы, связанные с фоном и поместите свою логику в их, если фон изменился один раз, то переопределенный метод должен throw exception saying that you can't change the style as it has been changed while setup the default look and feel.
public class CustomButton extends Button {
boolean backgroundChanged = true;
public CustomButton(Context context) {
this(context, null);
}
public CustomButton(Context context, @Nullable AttributeSet attrs) {
this(context, attrs, 0);
}
public CustomButton(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
@Override
public void setBackgroundResource(int resid) {
if (backgroundChanged){
throw new RuntimeException("you can't change the style as it has been changed while setup the default look and feel");
}
super.setBackgroundResource(resid);
}
}
Наконец, в файле макета замените тег <Button на <CustomButton
Если я изначально задаю какой-то параметр? что это значит?