2

我想允许用户更改允许 Android 以纵向或横向显示的选项。我所做的是允许用户设置首选项,然后将其强制应用到程序中。

在这一点上,我在里面使用这样的代码onCreate

prefs = PreferenceManager.getDefaultSharedPreferences(this);
if (prefs.getBoolean("landscapeModeEnabled", false)) {
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
}
else { 
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}

super.onCreate(savedInstanceState);

现在的问题是,如果屏幕不是“强制”方向,它会创建两次 Activity 。也就是说,如果用户想要横向,默认(纵向)方向的手机将加载屏幕两次。

我知道我可以使用 XML 进行设置,但这不允许用户更改方向的偏好。

如果这很重要,我正在使用SherlockFragmentActivity来自Action Bar Sherlock的产品。

4

1 回答 1

1

有2个这样的活动:

移动乐园

mActivityPort

中具有不同的方向Manifest

检查上一个活动中的首选项并启动相应Activity的 . 可能不是最好的解决方案:(

于 2013-02-18T05:35:06.927 回答