gpt4 book ai didi

java - 如何使用共享首选项在 ListView 中保存项目

转载 作者:行者123 更新时间:2023-12-02 11:52:22 25 4
gpt4 key购买 nike

我刚刚学习android studio。

然后,我想将列表项保存在 ListView 中

仅使用共享首选项。

我成功添加并保存项目。

但它只能保存一行!

然后我输入任意键。它只是在添加项目之前更改 key 。

那么,如何添加列表并保存呢? !请帮助我

在此处输入代码

// 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();
}

//加载共享首选项

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);

}

最佳答案

共享首选项不用于保存项目列表,它只是键值对数据结构,用于保存应用程序的少量数据。
在您的代码 fragment 中,您将用新数据覆盖以前的数据。
但如果您想保存列表数据,我建议使用 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);

}

希望这对你有帮助..

关于java - 如何使用共享首选项在 ListView 中保存项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47793638/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com