簡體   English   中英

在一個活動中將 Arraylist 保存到 sharedpreferences 並在另一個活動中將其加載到 recyclerview

[英]Save Arraylist into sharedpreferences in one activity and load it in recyclerview in another activity

我是 Android Dev 的新手,我正在嘗試構建一個應用程序,用戶可以在其中購買產品,一旦用戶單擊“是”按鈕並且訂單是,名稱、價格、購買日期等詳細信息將反映在訂單頁面上放置。

我試圖在第一個活動中將每個訂單的變量存儲到 ArrayList 中,並在第二個活動中將 ArrayList 綁定/顯示到 recyclerview 中。 但是當我嘗試下面的代碼時,它只在 recyclerview 中顯示一個項目,這是最后一次購買

Function 在 SharedPrefernces 中保存 ArrayList:-

private void saveData() {
    SharedPreferences sharedPreferences = getSharedPreferences("orders",MODE_PRIVATE);
    SharedPreferences.Editor editor = sharedPreferences.edit();
    Gson gson = new Gson();
    orderlist.add(new ModelClass(name,date,price));
    String json = gson.toJson(orderlist);
    editor.putString("tasklist",json);
    editor.apply();
}

訂單頁面(RecyclerView)活動中的 Function 加載數據:-

private void loadData(){
    SharedPreferences sharedPreferences = getSharedPreferences("orders",MODE_PRIVATE);
    Gson gson = new Gson();
    String json = sharedPreferences.getString("tasklist",null);
    Type type = new TypeToken<ArrayList<ModelClass>>(){}.getType();
    orderlist = gson.fromJson(json,type);

}

先感謝您

在保存任務時,您需要保留現有列表試試這個 -

private void saveData() {
    SharedPreferences sharedPreferences = getSharedPreferences("orders",MODE_PRIVATE);
    SharedPreferences.Editor editor = sharedPreferences.edit();
    Gson gson = new Gson();
    // fetch existing list
    String json = sharedPreferences.getString("tasklist",null);
    Type type = new TypeToken<ArrayList<ModelClass>>(){}.getType();
    orderlist = gson.fromJson(json,type);
    // add newest item in old list
    orderlist.add(new ModelClass(name,date,price));
    String json = gson.toJson(orderlist);
    editor.putString("tasklist",json);
    editor.apply();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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