java - Android Sharedpreferences 未提交

标签 java android android-activity sharedpreferences

我有一个正在应用程序中切换的开关。当我关闭应用程序时,我希望保存最后的切换状态。当应用程序打开时,它会将切换状态设置为上次保存的状态。我正在使用 SharedPreferences 来执行此操作。出于某种原因,我的偏好没有保存。我查看了我的代码,没有发现任何问题。

// Set some preferences
    Preferences = getApplicationContext().getSharedPreferences(getPackageName(), 0);

    // Set the monitor toggle to on or off
    final SwitchCompat monitorToggle = (SwitchCompat)findViewById(R.id.monitorToggleButton);
    boolean monitorStatus = Preferences.getBoolean("monitorStatus", true);
    monitorToggle.setChecked(monitorStatus);

    // Setup the monitor toggle view
    LinearLayout monitorToggleView = (LinearLayout)findViewById(R.id.monitorToggle);
    monitorToggleView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            monitorToggle.toggle();
            Preferences.edit().putBoolean("monitorStatus", monitorToggle.isChecked());
            Preferences.edit().commit();
        }
    });

“Preferences”变量是类中的私有(private)变量

private SharedPreferences Preferences;

最佳答案

尝试使用

SharedPreferences prefs = PreferenceManager
            .getDefaultSharedPreferences(YourActivity.this);
SharedPreferences.Editor editor = prefs.edit();

editor.putBoolean("monitorStatus", monitorToggle.isChecked());
editor.commit();

关于java - Android Sharedpreferences 未提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28708139/

相关文章:

android - ios 应用程序中的 Revmob - 如何判断用户是否安装了应用程序

java - 我如何同时进行 2 个 Activity

java - 如何防止12 :00:00 from becoming 00:00:00?

java - 调试tomcat崩溃

android - Espresso RecyclerViewActions.actionOnItem 错误

android - 即使向左移动Seekbar的滚动条,图像的亮度也会不断增加

安卓工作室 : "NullPointerException" when i load url into webview

java - 为什么在 Linux 上一个 Java 进程的运行速度与启动两次时的速度相同?

java - 在 Java 中清除列表

android - Android SQLite 数据库的 ContentObserver