簡體   English   中英

如何使用sharedpreference在listview中保存項目

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM