刷新具有编程状态的UI

时间:2013-10-31 10:02:25

标签: android android-activity

我很难过。我有一个带有自定义按钮的应用程序,根据连接更改它的可绘制。

我在设置中有一个选项,当更改时需要重新绘制视图并根据连接状态设置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()中,但这也不起作用。

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

您需要在findViewByIdupdateButtonDrawable进行操作,因为您刚刚更改了contentView。如果您不这样做,那么您正在更新错误的ImageButton引用..