方向更改后无法设置 Button 的 ImageResource
Unable to set ImageResource of Button after orientation change
目的是改变按钮的图片资源。如果我不改变方向它工作正常,但如果我改变方向,图像资源未设置(或可能未更新)。
我在 DebugMode 中观察到以下代码(toggleButton 方法)总是被执行,无论屏幕方向如何改变。 buttonIconID 也总是正确的。问题是,更改方向后未设置按钮的图像资源。
@Override
public void onCreate(Bundle savedInstanceState) {
...
mTopBar = new TopBar(this);
...
}
TopBar 构造函数:
public TopBar(MainActivity mainActivity) {
this.mainActivity = mainActivity;
mButton = (ImageButton) mainActivity
.findViewById(R.id.toggleButton);
mButton.setOnTouchListener(this);
...
}
TopBar 中的切换按钮方法:
public void toggleButton(final int buttonIconID) {
mainActivity.runOnUiThread(new Runnable() {
@Override
public void run() {
mButton.setImageResource(buttonIconID);
}
});
}
感谢您的帮助!
每次更改方向时都会重新创建 Activity
。因此,当您更改方向时,所有视图都会重置为其标准配置(或您在 onCreate()
/onResume()
等方法中设置的设置。
所以如果你想在改变方向后保留你编程设置的图像资源,你应该缓冲数据并在onCreate()
或onResume()
方法中重新设置。
目的是改变按钮的图片资源。如果我不改变方向它工作正常,但如果我改变方向,图像资源未设置(或可能未更新)。 我在 DebugMode 中观察到以下代码(toggleButton 方法)总是被执行,无论屏幕方向如何改变。 buttonIconID 也总是正确的。问题是,更改方向后未设置按钮的图像资源。
@Override
public void onCreate(Bundle savedInstanceState) {
...
mTopBar = new TopBar(this);
...
}
TopBar 构造函数:
public TopBar(MainActivity mainActivity) {
this.mainActivity = mainActivity;
mButton = (ImageButton) mainActivity
.findViewById(R.id.toggleButton);
mButton.setOnTouchListener(this);
...
}
TopBar 中的切换按钮方法:
public void toggleButton(final int buttonIconID) {
mainActivity.runOnUiThread(new Runnable() {
@Override
public void run() {
mButton.setImageResource(buttonIconID);
}
});
}
感谢您的帮助!
每次更改方向时都会重新创建 Activity
。因此,当您更改方向时,所有视图都会重置为其标准配置(或您在 onCreate()
/onResume()
等方法中设置的设置。
所以如果你想在改变方向后保留你编程设置的图像资源,你应该缓冲数据并在onCreate()
或onResume()
方法中重新设置。