Android Studio(Java):直接用Java而不是.xml更改按钮的颜色
我正在编写一个小测验游戏,我想解锁类别。这些类别已锁定(灰色),在对话框中解锁后应为橙色。我的问题是,颜色不会直接改变,而是在再次关闭和打开活动之后。我不喜欢它,因为用户对颜色不会直接改变感到困惑。我认为这是正确的方法:Android Studio(Java):直接用Java而不是.xml更改按钮的颜色,java,android,android-studio,Java,Android,Android Studio,我正在编写一个小测验游戏,我想解锁类别。这些类别已锁定(灰色),在对话框中解锁后应为橙色。我的问题是,颜色不会直接改变,而是在再次关闭和打开活动之后。我不喜欢它,因为用户对颜色不会直接改变感到困惑。我认为这是正确的方法: button_fun.setBackgroundColor(Color.parseColor("#FBBC55")); 你知道我做错了什么吗?谢谢大家! 编辑(更多代码,如果您需要更多,请告诉我): 活动的重要部分1 @R
button_fun.setBackgroundColor(Color.parseColor("#FBBC55"));
你知道我做错了什么吗?谢谢大家!
编辑(更多代码,如果您需要更多,请告诉我):
活动的重要部分1
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
@Override
public void applyunlock(String kat) {
preferences = getSharedPreferences(KEY,MODE_PRIVATE);
preferencesEditor = preferences.edit();
if(kat == "Geografie"){
geografie.setChecked(true);
geografie.setClickable(true);
button_geografie = findViewById(R.id.button_geografie);
button_geografie.setBackgroundColor(Color.parseColor("#FBBC55"));
unlock_geografie = true;
preferencesEditor.putBoolean("unlock_geografie", true);
}
谢谢 也许你没有透明的foreground?
尝试在按钮上使用postInvalidate()可能您没有透明ForegTound?
尝试在按钮上使用postInvalidate()我已经这样做了。颜色非常好。我的问题是,颜色不会直接改变,但在改变活动并返回之后。你需要更多的代码吗?如果你能分享我已经做过了,那就太好了。颜色非常好。我的问题是,颜色不会直接改变,但在改变活动并返回之后。你需要更多的代码吗?如果你能分享就太好了谢谢,postInvalidate()解决了这个问题!谢谢,postInvalidate()解决了这个问题!