目的是改变按钮的图像资源。如果我没有更改方向,它可以正常工作,但如果我更改方向,则不会设置(或可能不更新)图像资源。 我在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中的toggleButton方法:
public void toggleButton(final int buttonIconID) {
mainActivity.runOnUiThread(new Runnable() {
@Override
public void run() {
mButton.setImageResource(buttonIconID);
}
});
}
感谢您的帮助!
答案 0 :(得分:0)
每次更改方向时都会重新创建Activity
。因此,当您更改方向时,所有视图都会重置为其标准配置(或您在onCreate()
/ onResume()
等方法中设置的设置。
因此,如果要保留在更改方向后以编程方式设置的图像资源,则应缓冲数据并在onCreate()
或onResume()
方法中重新设置。