[英]How to save item in listview using sharedpreference
我正在學習android studio。
然后,我想將列表項保存在列表視圖中
僅使用共享首選項。
我成功添加並保存了項目。
但只能保存一行!
然后我輸入任何鍵。 它只是在添加項目之前更改鍵。
那么,如何添加列表並保存呢? ! 請幫我
enter code here
// listview save sharedpreference
private void savePreferences () {
String ten = editTen.getText().toString();
String sdt = editSDT.getText().toString();
SharedPreferences pref = getSharedPreferences("pref", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = pref.edit();
editor.putString("list1", ten);
editor.putString("list2", sdt);
editor.commit();
}
//加載sharedpreference
private void getPreferences() {
SharedPreferences pref = getSharedPreferences("pref", Context.MODE_PRIVATE);
String date = pref.getString("list1", null);
String name = pref.getString("list2", null);
arrSinhVien = new ArrayList<SinhVien>();
arrSinhVien.add(new SinhVien(R.drawable.luan, date, name));
myadapter = new CustomAdapter(this, R.layout.activity_diary_item, arrSinhVien);
}
共享首選項不用於保存項目列表,它只是鍵值對數據結構,可以保存應用程序的少量數據。
在您的代碼段中,您將用新數據覆蓋以前的數據。
但是仍然要保存列表數據,我建議您使用JSON數組並將該數組放入共享首選項中。
該代碼如下。
JSONArray jsArr=new JSONArray(); JSONObject jsObj=new JSONObject(); jsObj.putString("ten",editTen.getText().toString()); jsObj.putString("sdt",editSDT.getText().toString()); //Add this object to your JSONArray jsArr.add(jsObj); //Serialize your Json Array and save to shared preferences. savePreferences(jsArr);
private void savePreferences (JSONArray jsArr) {
SharedPreferences pref = getSharedPreferences("pref", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = pref.edit();
editor.putString("list", jsArr.toString());
editor.commit();
}
並如下使用
private void getPreferences() {
SharedPreferences pref = getSharedPreferences("pref", Context.MODE_PRIVATE);
arrSinhVien = new ArrayList<SinhVien>();
String jsArrList = pref.getString("list", null);
JSONArray jsArr=new JSONArray(jsArrList);
for(JSONObject obj:jsArr){
String date=obj.getString("ten");
String name=obj.getString("sdt");
arrSinhVien.add(new SinhVien(R.drawable.luan, date, name));
}
myadapter = new CustomAdapter(this, R.layout.activity_diary_item, arrSinhVien);
}
希望這個能對您有所幫助..
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.