回答
在偏好设定值:
// MY_PREFS_NAME - a static String variable like:
// public static final String MY_PREFS_NAME = "MyPrefsFile";
SharedPreferences.Editor editor = getSharedPreferences(MY_PREFS_NAME, MODE_PRIVATE).edit();
editor.putString("name", "Elena");
editor.putInt("idName", 12);
editor.commit();
从优先检索数据:
SharedPreferences prefs = getSharedPreferences(MY_PREFS_NAME, MODE_PRIVATE);
String restoredText = prefs.getString("text", null);
if (restoredText != null) {
String name = prefs.getString("name", "No name defined");//"No name defined" is the default value.
int idName = prefs.getInt("idName", 0); //0 is the default value.
}
更多信息
http://developer.android.com/guide/topics/data/data-storage.html#pref http://developer.android.com/reference/android/content/SharedPreferences.html
public static void SetStrPref(Context context,String Key,String Value) SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context); SharedPreferences.Editor editor = sharedPreferences.edit(); editor.putString(Key,Value); editor.commit(); } – user2034953
这是我用来保存共享首选项值的方法。我传递它的值和密钥 – user2034953
使用getSharedPreferences(MY_PREFS_NAME,MODE_PRIVATE)而不是getDefaultSharedPreferences(context); 看看 http://stackoverflow.com/questions/5946135/difference-between-getdefaultsharedpreferences-and-getsharedpreferences/6310080#6310080 – Assad
没有代码是diffucult来解决。无论如何,我想你在每次启动应用程序之前都不要重新安装它。所以可能你不会对共享偏好进行修改。从Saving Key-Value Sets:
SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPref.edit();
editor.putInt(getString(R.string.saved_high_score), newHighScore);
editor.commit();
检查你的代码,以验证commit()
指令的存在。
1你是否在if语句中做了更多的事情?因为你创建了两个变量,它什么都不做,在这个子句之后被破坏 第二你甚至可以分配“文本”首选项,而不是因为你没有加载,因为你得到了默认的null返回
对不起,我以为这是你的代码,但它然后去assad
我认为你没有提交这些更改。在放置值之后必须应用SharedPreferences.Editor.commit()。提交确保值已保存。
我已经使用comit()方法。每一件事情都很好,但当我重新启动应用程序,然后所有的喜好都清晰 – user2034953
plEASE分享你的代码 – warlock
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context); SharedPreferences.Editor editor = sharedPreferences.edit(); editor.putString(Key,Value); editor.commit(); – user2034953
考虑这个公认的答案:
我不知道为什么,但它是由只把你的首选项的代码异步任务里面工作:
prefss = getSharedPreferences(ACCOUNT_PREFS_NAME, MODE_MULTI_PROCESS);
new AsyncSave(favNamesList).execute();
private static class AsyncSave extends AsyncTask<Void, Void, Boolean> {
String favNamesList;
AsyncSave(String favNamesList) {
this.favNamesList = favNamesList;
}
@Override
protected Boolean doInBackground(Void... params) {
prefss.edit().putString("favNamesList", strings).apply();
return null;
}
}
- 1. 重新启动应用程序后更新共享首选项
- 2. 清除共享首选项
- 3. 应用程序在共享首选项启动时崩溃
- 4. 应用程序启动时的共享首选项
- 5. 如何清除应用程序从taskmanager中删除时的共享首选项?
- 6. 共享首选项未被清除,
- 7. 更新应用程序是否清除共享首选项或删除应用程序设置的警报?
- 8. 共享首选项重新启动后返回上一个值?
- 9. Android手机上的共享首选项重新启动
- 10. 重新启动后服务无法读取共享首选项
- 11. 使用共享首选项时Android应用程序崩溃
- 12. 共享首选项自动删除
- 13. 当应用程序关闭时修改共享首选项
- 14. 保存到共享首选项时应用程序崩溃
- 15. 在应用程序重新启动时清除EditText
- 16. 共享首选项崩溃程序
- 17. 防止在清除应用程序时删除数据库或共享首选项
- 18. 共享首选项重置应用程序崩溃时的数据。请指导
- 19. 首选项更改仅在重新启动应用程序时发生
- 20. 重新安装时重置共享首选项
- 21. 当应用程序被删除时,与应用程序关联的共享首选项是否被删除?
- 22. 更改共享首选项后更新UI时,应用程序崩溃
- 23. 共享首选项
- 24. 共享首选项
- 25. 共享首选项
- 26. 共享首选项在ICS上重启时丢失
- 27. android - 尝试使用键名清除共享首选项
- 28. Android共享偏好重新启动应用程序
- 29. 使用共享首选项崩溃我的应用程序
- 30. 使用共享首选项
SharedPreferences是只有在应用程序缓存被删除或应用程序重新安装时才会被删除。你能分享你保存你的偏好的代码吗? – Knossos