当前位置: 首页 > 知识库问答 >
问题:

试图使用Fragment保存夜间模式状态

祝锐
2023-03-14

我正在尝试在我的应用程序中启用黑夜模式,虽然它正在工作,但当我重新启动应用程序时,它会再次变为亮模式。基本上,我想保存黑夜模式状态,所以当重新启动应用程序时,它会在设置为暗模式后保持黑暗模式,而不是亮模式。我的相关代码如下:

     public View onCreateView(LayoutInflater inflater, ViewGroup container,
                                 Bundle savedInstanceState) {
            // Inflate the layout for this fragment
            View view= inflater.inflate(R.layout.fragment_settings, container, false);
            switchCompat= view.findViewById(R.id.switchCompat);
            sharedPreferences = getActivity().getSharedPreferences("night",0);
            Boolean booleanValue= sharedPreferences.getBoolean("night_mode",true);
            if(booleanValue){
                AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES);
                switchCompat.setChecked(true);
    
            }
            switchCompat.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
                @Override
                public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                    if(isChecked){
                        AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES);
                        switchCompat.setChecked(true);
                        SharedPreferences.Editor editor = sharedPreferences.edit();
                        editor.putBoolean("night_mode",true);
                        editor.commit();
                    }else{
                        AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO);
                        switchCompat.setChecked(false);
                        SharedPreferences.Editor editor = sharedPreferences.edit();
                        editor.putBoolean("night_mode",false);
                        editor.commit();
    
                    }
                }
            });
return view;

我也尝试了这个活动,但它并没有保存黑暗模式的状态。

暂时还没有答案

 类似资料:
  • 现在我们提供一个夜间模式,你只需要在 body 或者 .page 或者 .content 上加上 .theme-dark。它和其中所有子元素都会变成夜间模式。你也可以单独给 .bar 加上 .theme-dark,这样可以单独使标题栏或者工具栏变成夜间模式。 夜间模式最大的区别是他的背景变成了黑色,而前景色变成了白色。 夜间模式还处在测试阶段,可能会有某些组件在夜间模式下显示不正常。有任何问题都可

  • 获取设备夜间模式 接口说明 获取设备夜间模式 示例代码: Swift: RokidMobileSDK.device.getNightMode(device: RKDevice, completion: @escaping (_ error: RKError?, _ nightMode: SDKDeviceNightMode?) -> Void) Objc: RKDevice * device

  • 获取设备夜间模式 接口说明 获取设备夜间模式 参数说明 字段 类型 必须? 说明 deviceId String 是 设备ID 示例代码: String deviceId = "XXXXXX"; RokidMobileSDK.device.getNightMode(deviceId, new IGetDeviceNightMode() { @Override

  • 本文向大家介绍Android 保存Fragment 切换状态实例代码,包括了Android 保存Fragment 切换状态实例代码的使用技巧和注意事项,需要的朋友参考一下 前言  一般频繁切换Fragment会导致频繁的释放和创建,如果Fragment比较臃肿体验就非常不好了,这里分享一个方法。  正文  一、应用场景   1、不使用ViewPager   2、不能用replace来切换Fragm

  • 本文向大家介绍Android夜间模式最佳实践,包括了Android夜间模式最佳实践的使用技巧和注意事项,需要的朋友参考一下 由于Android的设置中并没有夜间模式的选项,对于喜欢睡前玩手机的用户,只能简单的调节手机屏幕亮度来改善体验。目前越来越多的应用开始把夜间模式加到自家应用中,没准不久google也会把这项功能添加到Android系统中吧。 业内关于夜间模式的实现,有两种主流方案,各有其利弊

  • 我正在为我的Android应用程序工作夜间模式。我使用ContextCompat.getColor以编程方式为一些UI元素获取颜色,但是这个方法并没有获取正确的颜色。当应用程序处于夜间模式时,因此遵循夜间资源限定符,ContextCompat从values/colors.xml中获取颜色,而不是从values-night/colors.xml中获取颜色。 奇怪的是,如果我从一个活动中调用conte