如何在android操作栏中添加夜间模式和日期模式

时间:2015-07-24 11:35:37

标签: android android-actionbar

我正在开发一个Android应用程序。我想在app中添加夜间模式和日期模式。我想在app的操作栏中显示它。

目前我的style.xml文件是

   <style name="Theme.FullScreen" parent="@android:style/Theme.Black.NoTitleBar.Fullscreen"></style>

<style name="PreferencesTheme" parent="android:Theme.Light">
    <item name="android:background">#FFEAEAEA</item>
</style>

<style name="PreferencesTheme" parent="android:Theme.Light">
    <item name="android:windowBackground">@drawable/ic_icon_settings</item>
</style>

1 个答案:

答案 0 :(得分:2)

我在我的xml文件中使用它来解决这个问题:

    <style name="ActionBar" parent="@android:style/Widget.Holo.ActionBar" />

    <style name="ActionBar.Light" parent="@style/ActionBar">
        <item name="android:background">@color/actionbar_background_light</item>
    </style>

    <style name="ActionBar.Dark" parent="@style/ActionBar">
        <item name="android:background">@color/actionbar_background_dark</item>
    </style>

    <style name="AppTheme.Light" parent="@android:style/Theme.Holo.Light">
        <item name="android:actionBarStyle">@style/ActionBar.Light</item>
        <item name="android:windowActionBarOverlay">true</item>
        <item name="listDragShadowBackground">@android:color/background_light</item>
        <item name="menuIconCamera">@drawable/ic_menu_camera_holo_light</item>
        <item name="menuIconToggle">@drawable/ic_menu_toggle_holo_light</item>
        <item name="menuIconShare">@drawable/ic_menu_share_holo_light</item>
    </style>

    <style name="AppTheme.Dark" parent="@android:style/Theme.Holo">
        <item name="android:actionBarStyle">@style/ActionBar.Dark</item>
        <item name="android:windowActionBarOverlay">true</item>
        <item name="listDragShadowBackground">@android:color/background_dark</item>
        <item name="menuIconCamera">@drawable/ic_menu_camera_holo_dark</item>
        <item name="menuIconToggle">@drawable/ic_menu_toggle_holo_dark</item>
        <item name="menuIconShare">@drawable/ic_menu_share_holo_dark</item>
    </style>

菜单之间切换模式

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {

    case R.id.toggleTheme:
        if (mThemeId == R.style.AppTheme_Dark) {
            mThemeId = R.style.AppTheme_Light;
        } else {
            mThemeId = R.style.AppTheme_Dark;
        }
        this.recreate();
        return true;

    default:
        return super.onOptionsItemSelected(item);
    }
}

在模式之间切换所需的全局变量:

    private int mThemeId = -1;

要保存最后选择的模式,请在onCreate():

    if(savedInstanceState != null && savedInstanceState.getInt("theme", -1) != -1) {
        mThemeId = savedInstanceState.getInt("theme");
        this.setTheme(mThemeId);
    }