我有一个应用程序,使用onConfigurationChanged(Configuration cfg)
。我还设置了android:configChanges="orientation|keyboardHidden"
。所以调用onConfigChanged()
方法,因为我有layout-land
和layout-port
目录,两个方向都有布局,我有一段代码如下:
@Override
public void onConfigurationChanged(Configuration cfg) {
super.onConfigurationChanged(cfg);
setContentView(R.layout.activity_main);
controller.applySettingsToButtons();
}
(activity_main与纵向版本的布局相同,但需要再次设置,否则应用程序将纵向版本置于横向模式,这显然是我不想要的)
我想要什么
我希望,当我旋转显示器时,让应用程序切换到layout-land
文件,切换后,将一些(动态)设置应用于按钮和内容。
会发生什么
设置了新的景观内容视图,但是虽然运行了applySettingsToButtons()
方法,但未应用按钮的设置。
思想
首先我认为mabybe setContentview是在另一个线程中运行的,导致applySettingsToButtons()
先完成。但是当我把它们都放在一个新的线程中并运行它时,就像以前一样。
问题
如何在设置其他(或相同)内容视图后将设置应用于按钮和内容?
答案 0 :(得分:1)
通过(setcontentview)
中的configurationChange
再次设置XML后,初始化findviewbyid
按钮。这应该有用。