我想允许用户更改允许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);
现在的问题是,如果屏幕未处于“强制”方向,会创建两次活动。也就是说,如果用户想要横向显示,默认(纵向)方向的手机将加载屏幕两次。
我知道我可以使用XML设置它,但这不允许用户更改方向的首选项。
我正在使用 Action Bar Sherlock 中的SherlockFragmentActivity
,如果这很重要的话。
答案 0 :(得分:1)
有2个这样的活动:
mActivityLand
mActivityPort
Manifest
中的方向不同。
检查上一个活动中的偏好设置并启动相应的Activity
。可能不是最好的解决方案:(