保存 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));
- findviewbyid 将崩溃,除非在创建视图后调用,即在 oncreate 方法中调用。
- 考虑在您的开关上使用点击监听器。
- 我不明白这行代码的意义 "SharedPreferences sharedPrefs = getSharedPreferences("SwitchButton", MODE_PRIVATE)"
- 以下是您如何使用共享首选项:
- 您最好查看一些示例以了解最佳编码实践http://developer.android.com/samples/index.html
我有一个设置 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));
- findviewbyid 将崩溃,除非在创建视图后调用,即在 oncreate 方法中调用。
- 考虑在您的开关上使用点击监听器。
- 我不明白这行代码的意义 "SharedPreferences sharedPrefs = getSharedPreferences("SwitchButton", MODE_PRIVATE)"
- 以下是您如何使用共享首选项:
- 您最好查看一些示例以了解最佳编码实践http://developer.android.com/samples/index.html