2

我有一个应用程序,使用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()方法已运行。

想法

首先,我认为 setContentview 可能在另一个线程中运行,导致applySettingsToButtons()首先完成。但是当我将它们都放在一个新线程中并运行它时,会发生与以前相同的事情。

问题

设置另一个(或相同)内容视图后,如何将设置应用于按钮和内容?

4

1 回答 1

1

通过(setcontentview)in再次设置 XML 后configurationChange,初始化findviewbyid按钮。那应该行得通。

于 2012-09-24T10:13:42.780 回答