回答
在偏好設定值:
// 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