保存 SWITCH 按钮状态,并使用 SharedPrefs 恢复状态

Save SWITCH button state, and recover state with SharedPrefs

我有一个设置 class,因此用户可以决定 subscribe/unsubscribe 到 Parse Push 中的频道。

我想我已经弄清楚了,除了要恢复的部分,并在用户下次打开应用程序或更改状态时保持开关状态。

谁能帮我看看如何保存状态,并将SWITCH切换到用户选择的状态?

 public class Settings extends Activity {
/**
 * Called when the activity is first created.
 */
private Switch krspush, egspush;
public static final String PREFS_NAME = "SwitchButton";

krspush = (Switch) findViewById(R.id.krspush);
    egspush = (Switch) findViewById(R.id.egspush);


    SharedPreferences sharedPrefs = getSharedPreferences("SwitchButton", MODE_PRIVATE);
    // How?


   public void onKrsClick (View view) {
    boolean on = ((Switch) view).isChecked();
    if (on) {
            SharedPreferences.Editor editor = getSharedPreferences("SwitchButton", MODE_PRIVATE).edit();
            editor.putBoolean("onKrsClick", true);
            editor.commit();
            ParsePush.subscribeInBackground("egersund");

        } else {
            SharedPreferences.Editor editor = getSharedPreferences("SwitchButton", MODE_PRIVATE).edit();
            editor.putBoolean("onKrsClick", false);
            editor.commit();
            ParsePush.unsubscribeInBackground("egersund");
        }
    }


public void onEgsClick (View view) {
    boolean on = ((Switch) view).isChecked();
    if (on) {
        SharedPreferences.Editor editor = getSharedPreferences("SwitchButton", MODE_PRIVATE).edit();
        editor.putBoolean("onEgsClick", true);
        editor.commit();
        ParsePush.subscribeInBackground("egersund");

    } else {
        SharedPreferences.Editor editor = getSharedPreferences("SwitchButton", MODE_PRIVATE).edit();
        editor.putBoolean("onEgsClick", false);
        editor.commit();
        ParsePush.unsubscribeInBackground("egersund");
    }
}

覆盖 activity class 的 onCreate 方法并尝试加载您保存在 SharedPreferences 中的值。

krspush.setChecked(sharedPrefs.getBoolean("onKrsClick",false));
  1. findviewbyid 将崩溃,除非在创建视图后调用,即在 oncreate 方法中调用。
  2. 考虑在您的开关上使用点击监听器。
  3. 我不明白这行代码的意义 "SharedPreferences sharedPrefs = getSharedPreferences("SwitchButton", MODE_PRIVATE)"
  4. 以下是您如何使用共享首选项:
  5. 您最好查看一些示例以了解最佳编码实践http://developer.android.com/samples/index.html