我很难过。我有一个带有自定义按钮的应用程序,根据连接更改它的可绘制。
我在设置中有一个选项,当更改时需要重新绘制视图并根据连接状态设置drawable。
我在我的Activity中实现了onSharedPreferenceChange,在那里我用setContentView重新加载了相应的UI。
之后我根据连接状态设置了drawable按钮。这样的事情。
String dexterity = prefs.getString(
getString(R.string.landscape_orientation_key), "Right");
if (dexterity.equals("Left")) {
setContentView(R.layout.activity_main_left);
} else {
setContentView(R.layout.activity_main);
}
updateButtonDrawable(myClass.getCurrentButtonDrawable())
UI成功重绘为默认状态,没有可绘制的设置作为按钮的src。我调用更新按钮drawable的方法虽然没有效果。在整个应用程序中证明并使用了所述方法,因此我确信代码可以正常运行,并且我已经检查过它是否正在尝试设置当前状态。
我认为当我调用updateButtonDrawable时,setContentView可能还没有完成。我尝试将UI更新放在onResume()中,但这也不起作用。
有什么建议吗?
答案 0 :(得分:1)
您需要在findViewById
内updateButtonDrawable
进行操作,因为您刚刚更改了contentView
。如果您不这样做,那么您正在更新错误的ImageButton
引用..