Java 防止按钮的样式更改

Java 防止按钮的样式更改,java,android,android-fragments,Java,Android,Android Fragments,我最初在onCreateView中使用此代码设置按钮的背景 uc.setBackgroundResourceR.drawable.saat_button_none 若我最初设置按钮的背景或文本颜色,我希望在使用onClick时防止样式更改 可能吗 编辑:我不想使用if语句,因为我有很多按钮,我只想锁定按钮的样式。为此,只需扩展视图并覆盖与背景相关的所有方法,即可创建自定义视图,并将您的逻辑放入其中。如果背景已更改一次,则覆盖的方法应引发异常,说明在设置默认外观时无法更改样式,因为样式已更改 最后

我最初在onCreateView中使用此代码设置按钮的背景

uc.setBackgroundResourceR.drawable.saat_button_none


若我最初设置按钮的背景或文本颜色,我希望在使用onClick时防止样式更改

可能吗

编辑:我不想使用if语句,因为我有很多按钮,我只想锁定按钮的样式。

为此,只需扩展视图并覆盖与背景相关的所有方法,即可创建自定义视图,并将您的逻辑放入其中。如果背景已更改一次,则覆盖的方法应引发异常,说明在设置默认外观时无法更改样式,因为样式已更改


最后在布局文件中替换我最初是否设置了任何参数?这是什么意思?若我最初设置了按钮的背景或文本颜色,我的意思是点击按钮后确定按钮的颜色?更改其他按钮的背景并查看
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);
 }
}
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);
  }
}