2 回答

TA貢獻(xiàn)1815條經(jīng)驗(yàn) 獲得超13個(gè)贊
你沒(méi)有KEY在你的SharedPreferences
您需要在保存和檢索數(shù)據(jù)時(shí)使用相同的密鑰SharedPreferences
當(dāng)您從SharedPreferences您使用的"task lisk"密鑰獲取數(shù)據(jù)并且當(dāng)您將數(shù)據(jù)保存在 中時(shí)SharedPreferences,您已經(jīng)使用了task list
像這樣
private void loadData() {
if (initialStart) {
SharedPreferences sharedPreferences = getSharedPreferences("todo list", MODE_PRIVATE);
Gson gson = new Gson();
String json = sharedPreferences.getString("task_list", null);
Type type = new TypeToken<ArrayList<Record>>() {
}.getType();
AddItemActivity.listItems = gson.fromJson(json, type);
initialStart = false;
}
if (AddItemActivity.listItems == null) {
AddItemActivity.listItems = new ArrayList<>();
}
if (adapter == null) {
adapter = new ArrayAdapter<>(getApplicationContext(), android.R.layout.simple_list_item_1, AddItemActivity.listItems);
}
adapter.notifyDataSetChanged();
}
public void saveData() {
SharedPreferences sharedPreferences = getSharedPreferences("todo list", MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
Gson gson = new Gson();
String json = gson.toJson(AddItemActivity.listItems);
editor.putString("task_list", json);
editor.apply();
}

TA貢獻(xiàn)1856條經(jīng)驗(yàn) 獲得超11個(gè)贊
您的SharedPreference
姓名必須相同才能存儲(chǔ)和檢索數(shù)據(jù)。
SharedPreferences sharedPreferences = getSharedPreferences("todo list", MODE_PRIVATE);
您正在使用此名稱進(jìn)行存儲(chǔ),但在檢索時(shí)它是不同的。所以改變
SharedPreferences sharedPreferences = getSharedPreferences("shared preferences", MODE_PRIVATE);
至
SharedPreferences sharedPreferences = getSharedPreferences("todo list", MODE_PRIVATE);
添加回答
舉報(bào)