我想讓我的應用程序從XML數組中讀取sharedpreferences默認值,但是我遇到了一個問題。比方說,我有20個複選框,我在strings.xml中將20個項目插入到字符串數組中。現在我想要做的事很簡單,我希望我的sharedpreferences從這個數組讀取默認值。 Checkbox1將獲得第一個項目名稱,checkbox2將獲得第二個項目名稱等。下面的代碼顯示了我試圖做的事情。從XML數組讀取sharedpreferences默認值
XML數組:
<string-array name="spBifrost">
<item>Elaborate Totem (250)</item>
<item>Pile of Crystalline Dust (250)</item>
<item>Powerful Venom Sac (250)</item>
<item>Vial of Powerful Blood (250)</item>
<item>Ancient Bone (250)</item>
<item>Armored Scale (250)</item>
<item>Vicious Claw (250)</item>
<item>Vicious Fang (250)</item>
<item>Glob of Ectoplasm (77)</item>
<item>Glob of Ectoplasm (77)</item>
<item>Mystic Coin (77)</item>
<item>Obsidian Shard (77)</item>
<item>Philosophers Stone (462)</item>
<item>Badge of Honor (500)</item>
<item>Obsidian Shard (250)</item>
<item>Shard of Zhaitan (500)</item>
<item>Opal Orb (100)</item>
<item>Pile of Crystalline Dust (250)</item>
<item>Unidentified Dye (250)</item>
<item>Pile of Crystalline Dust (250)</item>
<item>Pile of Incandescent Dust (250)</item>
<item>Pile of Luminous Dust (250)</item>
<item>Pile of Radiant Dust (250)</item>
<item>Icy Runestone (100)</item>
</string-array>
Sharedpreferences在java中獲取代碼:
private String getItemQuantity(String key){
SharedPreferences itemQuantitySP = getApplicationContext().getSharedPreferences("bifrostPrefs", android.content.Context.MODE_PRIVATE);
Resources spRes = getResources();
TypedArray itemNames = spRes.obtainTypedArray(R.array.spBifrost);
String itemSp = itemNames.toString();
return itemQuantitySP.getString(key, itemSp);
}
現在,當我真正使用此代碼,它不工作,我怎麼想的。例如,不是將checkbox1重命名爲「Elaborate Totem(250)」,而是將它重命名爲一堆我不明白的隨機數。有人能告訴我我做錯了什麼嗎?我是一個完整的初學者(開始學習一個月前開發的java/android),所以我有很大的機會去完全錯誤的,這就是爲什麼我要求你的幫助。
現在Java代碼:
private String getItemQuantity(String key){
SharedPreferences itemQuantitySP = getApplicationContext().getSharedPreferences("bifrostPrefs", android.content.Context.MODE_PRIVATE);
Resources res = getResources();
String[] spBifrost = res.getStringArray(R.array.spBifrost);
ArrayList<String> spBifrostArray = new ArrayList<String>();
return itemQuantitySP.getString(key, spBifrostArray.toString());
}
做ü解決了這個問題? – KOTIOS
不幸的是,現在還沒有,我覺得我更接近解決方案,但我的應用程序仍然不會讀取數組。正如我已經告訴LJoosse(回答我的問題的人),默認值現在顯示爲「[]」。 – Guy