[英]how to use shared preferences to save array list items?
我使用這兩種方法來保存和加載數組列表,並且在將每一項動態添加到數組之后,需要保存數組列表。
public void addItems(int howMany){
if (howMany > 0) {
int lastInsertedIndex = 11;
for (int i = lastInsertedIndex + 1; i <= lastInsertedIndex + howMany; i++) {
mList.add("Item " + i);
notifyItemInserted(mList.size() - 1);
}
lastInsertedIndex = lastInsertedIndex + howMany;
}
}
和我的保存和加載方法:
public boolean saveArray() {
SharedPreferences sp = this.getSharedPreferences(SHARED_PREFS_NAME, Activity.MODE_PRIVATE);
SharedPreferences.Editor editor = sp.edit();
Set<String> set = new HashSet<String>();
set.addAll(mainListAdapter.mList);
editor.putStringSet("list", set);
return editor.commit();
}
public ArrayList<String> getArray() {
SharedPreferences sp = context.getSharedPreferences(SHARED_PREFS_NAME, Activity.MODE_PRIVATE);
//NOTE: if shared preference is null, the method return empty Hashset and not null
Set<String> set = sp.getStringSet("list", new HashSet<String>());
return new ArrayList<String>(set);
}
我的問題是:當我添加帶有按鈕的新項目時,什么也沒發生,而數組列表已滿,該如何解決呢?
我認為您應該嘗試使用TinyDB ,它是SharedPreferences
的實現,使用非常簡單。
TinyDB tinydb = new TinyDB(context);
tinydb.putList("identifier", list);
您甚至可以保存對象:
tinydb.putObject(key, object);
tinydb.putListObject(key, objectsArray);
以下內容:
全局聲明myList
:
ArrayList<String> myList = new ArrayList<String>();
設置值:
for (int i = 0; i < totalSize; i++) {
PreferenceManager.getDefaultSharedPreferences(this)
.edit()
.putString("number" + i, value + "").commit();
}
為了獲得價值:
for (int i = 0; i < totalSize; i++) {
myList.add(PreferenceManager.getDefaultSharedPreferences(this)
.getString("number" + i, "0"));
}
注意: totalSize
是數組的大小
享受編碼.............
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.