android - 从一个 onClick 更改两个按钮的背景?

标签 android

我正在制作一个测验应用程序,所以我将有 4 个按钮,当用户单击错误的选项时,一个的背景将变为红色,而正确的将变为绿色。

我尝试了多种方法,包括使用 XML onClick,即 onClick 监听器。我也尝试了处理程序,但没有任何效果。

总是错误的按钮会变成红色,但正确的按钮永远不会变成绿色。

....
....
mHandler = new Handler(){
        @Override
        public void handleMessage(Message msg) {
            ansButton.setBackgroundColor(Color.GREEN);
        }
    };

}

public void button1(View v){
    if(v.getId() != ansID)
        v.setBackgroundColor(Color.RED);
    mHandler.sendEmptyMessage(0);
}
public void button2(View v){
    if(v.getId() != ansID)
        v.setBackgroundColor(Color.RED);
    mHandler.sendEmptyMessage(0);
}
public void button3(View v){
    if(v.getId() != ansID)
        v.setBackgroundColor(Color.RED);
    mHandler.sendEmptyMessage(0);
}
public void button4(View v){
    if(v.getId() != ansID)
        v.setBackgroundColor(Color.RED);
    mHandler.sendEmptyMessage(0);
}
.....
.....

编辑

在进一步测试中,我发现在 button1 onClick 方法上我只能调整 button1 而不能调整其他按钮,即使它们是成员变量。

最佳答案

尝试在更改背景颜色后调用ansButton.invalidate()

关于android - 从一个 onClick 更改两个按钮的背景?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31698059/

相关文章:

android - Android Fragment 中的 EditText 值不刷新

Android在调用WebRTC时将音频录制到文件 Controller

Android:通过 AOSP 源代码创建新的系统权限。

java - Android Studio 找不到 cerfile,模拟器无法启动

java - 运行 Android 应用程序两次才能工作,为什么?

多次触发 Scrollview 的 Android onScrollChanged

android - 是否可以在 2 个不同的 Android 应用程序中为内容提供商拥有相同的权限?

android - 如何在 Android 的默认联系人屏幕中隐藏菜单?

android - 更新 Google 支持和设计库后, float 操作按钮在滚动时不可见

java - 在来自不同 Java 类文件的 Activity 中 toast