使用首选项应用全屏或将应用程序主题更改为整个应用程序

时间:2014-01-10 15:26:33

标签: android android-preferences android-styles

如何使用优化步骤直接将全屏或任何主题应用于具有首选项活动的应用程序?

使用首选项活动创建应用程序权限屏幕,并将各种应用程序设置选项应用于整个应用程序。

首选项屏幕的布局: - 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); } ,这使得这些解决方案对我来说有点冗长。

任何人都可以指导我制作优化解决方案,将主题应用于应用程序,而应用程序几乎没有变化。

1 个答案:

答案 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);                
  }
}
相关问题