0

我被一个问题难住了。我有一个带有自定义按钮的应用程序,它可以根据连接更改它的可绘制性。

我在设置中有一个选项,当更改时需要重新绘制视图并根据连接状态设置可绘制对象。

我已经在我的 Activity 中实现了 onSharedPreferenceChange,并在其中使用 setContentView 重新加载了适当的 UI。

之后,我根据我的连接状态设置了可绘制的按钮。像这样的东西。

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。我调用更新按钮可绘制的方法虽然没有效果。所述方法已在整个应用程序中得到验证和使用,因此我确信代码有效,并且我已经检查过它是否正在尝试设置当前状态。

我认为可能是当我调用 updateButtonDrawable 时 setContentView 尚未完成。我尝试将 UI 更新放在 onResume() 中,但这也不起作用。

有什么建议么?

4

1 回答 1

1

您需要做一个findViewById内部updateButtonDrawable,因为您刚刚更改了contentView. 如果您不这样做,那么您正在更新错误的ImageButton参考。

于 2013-10-31T10:29:03.633 回答