回答
在偏好設定值:
// 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. 使用共享首選項時Android應用程序崩潰
- 6. 共享首選項重置應用程序崩潰時的數據。請指導
- 7. 共享首選項
- 8. 共享首選項
- 9. 更改共享首選項後更新UI時,應用程序崩潰
- 10. android - 嘗試使用鍵名清除共享首選項
- 11. Android共享偏好重新啓動應用程序
- 12. 使用共享首選項
- 13. 如何在應用程序中獲得共享首選項?
- 14. Android應用程序崩潰(共享首選項)
- 15. 刪除共享首選項數據
- 16. 已刪除類的共享首選項
- 17. 如何從片段中清除共享首選項?
- 18. 如何清除註銷的共享首選項?
- 19. 我想清除共享首選項的值
- 20. Android - 清除應用程序數據和重新啓動設備
- 21. Android中清除數據結構/重新啓動應用程序
- 22. 如何閱讀應用程序啓動時的首選項
- 23. Android共享首選項 - 重置
- 24. 移動應用程序共享首選項保存和調用用戶登錄
- 25. 使用共享首選項顯示啓動屏幕一次
- 26. 在更新用戶信息時更新共享首選項
- 27. 我的共享首選項不更新,
- 28. java應用程序共享選項
- 29. 列表項目未啓動當由共享首選項重新加載時的活動
- 30. 共享首選項存儲
SharedPreferences是隻有在應用程序緩存被刪除或應用程序重新安裝時纔會被刪除。你能分享你保存你的偏好的代碼嗎? – Knossos