gpt4 book ai didi

android - 可以在 Activity 类之外更改按钮的颜色吗?

转载 作者:行者123 更新时间:2023-11-29 16:20:08 25 4
gpt4 key购买 nike

我有一个带有布局和一些按钮的 Activity ,我想更改这些按钮的颜色。但是还有更多按钮,所以我想使用其他类中定义的方法来更改它们。这可能吗?我尝试创建一个扩展当前类的新类。但它正在强制关闭。

public class Color_change extends Calculate
{
public void test()
{
Button button = (Button)findViewById(R.id.one);
button.setTextColor(0xFFFF0000);
}
}

Calculate 是扩展 Activity 的主类。我打电话如下:

Color_change a = new Color_change();
a.test();

最佳答案

如果屏幕上显示的当前 Activity 不是 Color_change,您编写的代码将无法运行。如果你想有一个单独的类来改变一组按钮的颜色,我建议将按钮以某种形式的集合传递给改变按钮颜色的类。你可以这样写一个类:

public class ColorChanger
{
public void changeColor(Collection<Button> buttons)
{
for(Button b : buttons) {
changeButtonColor(b);
}
}

private void changeButtonColor(Button button) {
switch(button.getId()) {
case R.id.one:
button.setTextColor(0xFFFF0000);
break;
default:
// set default color?
break;
}
}
}

然后您只需要列出需要传递给换色器的所有按钮。

List<Button> buttons = new ArrayList<Button>();
buttons.add((Button)findViewById(R.id.one));
//add any more buttons

请注意,Android 中的主题和样式可以让您实现大量此类效果。我敢肯定,在转向代码解决方案之前,您已经用尽了所有精力。

关于android - 可以在 Activity 类之外更改按钮的颜色吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7487416/

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