[英]I can't get SharedPreferences to work
我正在为Android开发一个应用程序,在“启动”屏幕上,我希望它在第一次启动该应用程序时显示AlertDialog。 这是我的代码:
SharedPreferences savedInfo = getSharedPreferences("SavedInfo", MODE_PRIVATE);
SharedPreferences.Editor infoEditor = savedInfo.edit();
boolean firstLaunch = savedInfo.getBoolean("firstLaunch", true);
final AlertDialog importDialog = new AlertDialog.Builder(SplashActivity.this).create();
if (firstLaunch == true) {
importDialog.setTitle(R.string.splash_import_title);
importDialog.setMessage(getString(R.string.splash_import_text));
importDialog.setIcon(android.R.drawable.ic_dialog_alert);
importDialog.setButton(getString(R.string.splash_import_yes), new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
//ALL FILE STUFF HERE
importDialog.dismiss();
startTimer();
}
});
importDialog.setButton2(getString(R.string.splash_import_no), new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
importDialog.dismiss();
startTimer();
}
});
importDialog.show();
infoEditor.putBoolean("firstLaunch", false);
} else {
startTimer();
}
问题是,它每次都会显示对话框。 即使我已经启动它。 谢谢您的时间和帮助,zeokila。
我相信,你必须运行infoEditor.commit()
后putBoolean
。 在您保存新的首选项之前,它实际上并没有保存。
http://developer.android.com/reference/android/content/SharedPreferences.Editor.html
您必须告诉编辑器进行保存。 添加infoEditor.commit();
(同步)或infoEditor.apply();
(异步)以保持您的价值。
infoEditor.commit()
似乎后失踪infoEditor.putBoolean("firstLaunch", false)
,因此新的值永远不会被保存。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.