Android在setContentView之后应用设置

时间:2012-09-24 09:30:39

标签: android layout orientation

我有一个应用程序,使用onConfigurationChanged(Configuration cfg)。我还设置了android:configChanges="orientation|keyboardHidden"。所以调用onConfigChanged()方法,因为我有layout-landlayout-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()先完成。但是当我把它们都放在一个新的线程中并运行它时,就像以前一样。

问题

如何在设置其他(或相同)内容视图后将设置应用于按钮和内容?

1 个答案:

答案 0 :(得分:1)

通过(setcontentview)中的configurationChange再次设置XML后,初始化findviewbyid按钮。这应该有用。