使用首选项活动创建应用程序权限屏幕,并将各种应用程序设置选项应用于整个应用程序。
首选项屏幕的布局: - res / xml / settings.xml
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >
<PreferenceCategory android:title="@string/appearance" >
<CheckBoxPreference
android:defaultValue="false"
android:key="prefIsFullScreen"
android:summary="@string/fullscreen_summary"
android:title="@string/fullscreen" >
</CheckBoxPreference>
</PerferenceCategory>
<PreferenceScreen>
我尝试了什么:像黄油一样工作
将Fullscreen
应用于整个应用程序。
来自onOptionSelected
的{{1}}
startActivityForResult(此,PreferenceSettingsActivity.class)
选中“首选项活动”中的“全屏”选项复选框后。
启动Activity的 Activity
,我已使用
onActivityResult()
onCreate of Activity,我创建了以下代码片段,根据偏好设置使其全屏显示
Intent i = getIntent();
finish();
startActivity(i);
这完全没问题。但是我的应用程序中有很多 protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
pref=PreferenceManager.getDefaultSharedPreferences(SmartConsultant.getApplication());
if(pref.getBoolean("prefIsFullScreen", false))
{
setTheme(R.style.FullScreen);
}
setContentView(R.layout.options_screen_updated);
}
,这使得这些解决方案对我来说有点冗长。
任何人都可以指导我制作优化解决方案,将主题应用于应用程序,而应用程序几乎没有变化。
答案 0 :(得分:0)
为您的活动创建一个超类,将主题的if语句放在超类中。然后,每个活动直接扩展该超类而不是活动。
超级类只需要onCreate方法。然后每个活动只需要
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.options_screen_updated);
}
超级班有
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
pref=PreferenceManager.getDefaultSharedPreferences(SmartConsultant.getApplication());
if(pref.getBoolean("prefIsFullScreen", false))
{
setTheme(R.style.FullScreen);
}
}