![](/img/trans.png)
[英]Android throwing weird exception while using SharedPreferences
[英]problem While Sharing text in Android using SharedPreferences
我正在跟蹤此鏈接以使用SharedPreferences.Am嘗試在我的應用程序中應用,但是Shared值返回空值
這是我的代碼分配共享變量
SharedPreferences sharedPreferences = getSharedPreferences("pref",Activity.MODE_WORLD_READABLE);
SharedPreferences.Editor editor= sharedPreferences.edit();
String l="hello";
editor.putString(l,"imagepath");
editor.commit();
這是訪問共享變量的代碼
SharedPreferences myPrefs = this.getSharedPreferences("myPrefs", MODE_WORLD_READABLE);
String prefName = myPrefs.getString("imagepath",null);
Toast.makeText(getBaseContext(),"create banner"+prefName,Toast.LENGTH_LONG).show();
這里prefName返回null值。它不能共享。
您使用了錯誤的密鑰。
得到這樣的字符串:
String prefName = myPrefs.getString("hello",null);
您還使用了兩個不同的sharedPreference名稱:
SharedPreferences sharedPreferences = getSharedPreferences("pref",Activity.MODE_WORLD_READABLE);
SharedPreferences myPrefs = this.getSharedPreferences("myPrefs", MODE_WORLD_READABLE);
請確保您使用相同的SharedPreference
讀寫。
您用SharedPreference編寫的代碼應如下所示:
SharedPreferences sharedPreferences = getSharedPreferences("pref",0);
SharedPreferences.Editor edito r= sharedPreferences.edit();
String l="hello";
editor.putString(l,"imagepath");
editor.commit();
從SharedPreference讀取應如下所示:
SharedPreferences myPrefs = this.getSharedPreferences("pref", 0);
String prefName = myPrefs.getString("hello",null);
Toast.makeText(getBaseContext(),"create banner"+prefName,Toast.LENGTH_LONG).show();
切換此:
editor.putString("imagepath", l);
您也可能希望將“ null”的可能返回值更改為更可接受的錯誤返回值,例如0或-1。
String prefName = myPrefs.getString("imagepath","0");
abstract SharedPreferences.Editor putString(String key, String value)
//Set a String value in the preferences editor, to be written back once commit() or apply() are called.
首選項名稱是“ hello”,而不是“ imagepath”。
String prefName = myPrefs.getString("hello", null);
而且我認為最好使用getString("hello", "")
。 這樣, prefName
將永遠不會為null
。
您已經在(SharedPreferences myPrefs = this.getSharedPreferences(“ myPrefs”,MODE_WORLD_READABLE);)中編寫了“ myPrefs”
像這樣更改它(SharedPreferences myPrefs = this.getSharedPreferences(“ pref”,MODE_WORLD_READABLE);)
在這里,我將(“ myPrefs”,MODE_WORLD_READABLE)中的“ myPrefs”更改為“ pref”。
現在,您可以選擇一個(“ pref”,MODE_WORLD_READABLE)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.