0

我正在嘗試重新設計我的應用程序,但我不確定最好的方式去解決它。保存RecyclerView /備註以供將來使用

我現在有一些鍛鍊的頁眉/父項可擴展列表視圖。每次鍛鍊有4個孩子項目,代表4周。當用戶點擊一週時,它會將它們發送到一個新的活動,該活動有3個選項卡片段(表示星期一,星期三和星期五)。這些片段每個都有一個回收器視圖,根據所點擊的項目(自定義對象)填充數據。這裏是一個小例子:

//RECYCLERVIEW 
    final RecyclerView rv = (RecyclerView) view.findViewById(R.id.mRecyclerMon); 
    rv.setLayoutManager(new LinearLayoutManager(this.getActivity())); 
    rv.setAdapter(new MyRecyclerAdapter(this.getActivity(), getMondayWorkout(), 1)); 

private ArrayList<Workout> getMondayWorkout() { 
    ArrayList<Workout> workout = new ArrayList<>(); 
    switch (workout3) { 
     case "w29w1": { 
      Workout workouts = new Workout(getActivity().getString(R.string.benchpress), "50", "5", bench50, false); 
      workout.add(workouts); 
      workouts = new Workout(getActivity().getString(R.string.benchpress), "60", "4", bench60, false); 
      workout.add(workouts); 

這只是一個小例子。這很好,但我想使它更容易使用。我的想法是讓用戶選擇鍛鍊,然後將每次鍛鍊作爲事件添加到Caldroid日曆中,當他們單擊鍛鍊時(例如,星期一),我將使用之前用於回收器視圖的相同視圖。到目前爲止,我相信我知道如何做到這一切。

我的問題是,我想實現一個保存功能。因此,當用戶完成鍛鍊後,它將保存到Caldroid的相應日期,並更改當天的bg顏色,以便用戶知道它已完成。我只是不確定如何保存鍛鍊,以便用戶可以返回到當天查看它,因爲現在回收者視圖總是被重新使用,並且根據當天的情況重新使用相同的數組列表。他們點擊。我還想添加一個選項來記筆記,這使得事情變得更加複雜。

基本上我想要它,所以當用戶保存他們完成的鍛鍊時,它會保存該活動的每一部分,回收者視圖項目(包括複選標記狀態)以及與該鍛鍊一起拍攝的筆記。

我曾考慮過使用sqlite,但我不知道如何將自定義對象的ArrayList/recyclerview狀態保存到sqlite中,然後在保存項目並單擊用戶後再引用它在特定日期

如果任何人有任何幫助都,或者可以點我在正確的方向,這是非常感謝!我不知道從哪裏開始!非常感謝!

回答

0

你可以只保存在共享prefeerences的數據,然後讓公有的getter類函數重用呢?

+0

我與共享偏好的擔心是它可能是一個相當大的數據量,以保存每個數組列表(其中包含20多個項目)爲他們做的每一個鍛鍊。在幾個月的時間裏,我認爲這可能會成爲共享pref的大量數據。 – LBJ33

+0

我曾經想過SQLite的,但我不知道究竟如何我會保存一個ArrayList/recyclerview的狀態,自定義對象到sqlite的 – LBJ33

+0

呀,所以對於海量數據,必須去sqlite的分貝 –

相關問題