android - 如果默认为自动,如何获取 AppCompatDelegate 当前模式

标签 android android-appcompat

我有这样的 Activity :

package com.nkdroid.daynighttheme;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.app.AppCompatDelegate;
import android.widget.TextView;

public class ModeActivity extends AppCompatActivity {

    private TextView txtModeType;
    int modeType;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_auto_mode);
        txtModeType = (TextView) findViewById(R.id.txtModeType);
        modeType = AppCompatDelegate.getDefaultNightMode();

        if (modeType == AppCompatDelegate.MODE_NIGHT_AUTO) {
            txtModeType.setText("Default Mode: Auto");
        } else if (modeType == AppCompatDelegate.MODE_NIGHT_YES) {
            txtModeType.setText("Default Mode: Night");
        } else if (modeType == AppCompatDelegate.MODE_NIGHT_NO) {
            txtModeType.setText("Default Mode: Day");
        }
    }
}`

如果默认模式设置为AUTO,是否可以获取现在激活的模式(白天或夜晚)?

最佳答案

您可以使用以下代码获取当前模式,

int currentNightMode = getResources().getConfiguration().uiMode
        & Configuration.UI_MODE_NIGHT_MASK;
switch (currentNightMode) {
    case Configuration.UI_MODE_NIGHT_NO:
        // Night mode is not active, we're in day time
    case Configuration.UI_MODE_NIGHT_YES:
        // Night mode is active, we're at night!
    case Configuration.UI_MODE_NIGHT_UNDEFINED:
        // We don't know what mode we're in, assume notnight
}

以下article Chris Banes 很好地解释了这一点。

关于android - 如果默认为自动,如何获取 AppCompatDelegate 当前模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41391404/

相关文章:

android - 合并 Observable 的排放量

未找到 Android SDK hierarchyviewer 命令(Android Studio、Mac OS)

android - 使用 AppCompat v22.1.0 时如何在 super.onCreate 之前设置 ContentView?

android - 如何在Android 5.0 Lollipop 中更改ActionBar 文本颜色?

android - 从已打开的 Activity 中的通知接收 Intent ?

android - cordova 上的 css 问题(li 的底部边框宽度不同)?

android - ActionBarActivityDelegate 类问题......应用程序无法运行

java - AppCompatActivity 改变了我的 AlertDialog 设计

android - 更改 Lollipop 操作栏的操作栏项目的按下颜色

android - 无法解析 : com. android.support :appcompat-v7:22. 2.1