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