gpt4 book ai didi

java - 防止按钮样式改变

转载 作者:行者123 更新时间:2023-12-02 10:56:36 25 4
gpt4 key购买 nike

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

uc.setBackgroundResource(R.drawable.saat_button_none);

如果我最初设置按钮的背景或文本颜色,我想在使用 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 语句,因为我有很多按钮,我只想锁定按钮的样式。

最佳答案

为此,只需扩展即可创建自定义 View 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

关于java - 防止按钮样式改变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51684079/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com