0

我正在尝试重新设计我的应用程序,但我不确定最好的方法。

我目前有一个可扩展的列表视图,其中包含一些锻炼作为标题/父项。每个锻炼有 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 日历中,当他们单击该锻炼时(例如,星期一),将使用我之前使用的与回收器视图相同的视图。到目前为止,我相信我知道如何做到这一切。

我的问题是,我想实现一个保存功能。因此,当用户完成 Workout 后,它会保存到 Caldroid 上的相应日期,并更改当天的 bg 颜色,以便用户知道它已完成。我只是不确定如何保存锻炼,以便用户可以回到那天并检查它,因为现在回收器视图总是被重复使用,并且根据哪一天重复使用相同的数组列表他们点击。我还想添加一个选项来做笔记,这使事情变得更加复杂..

基本上我想要它,所以当用户保存他们完成的锻炼时,它会保存该活动的每个部分、回收器视图项目(包括复选标记状态)以及该锻炼所记的笔记。

我曾考虑过使用 sqlite,但我不确定如何将带有自定义对象的 ArrayList/recyclerview 的状态保存到 sqlite 中,然后在保存项目并且用户单击特定日期后参考该状态

如果有人有任何帮助,或者可以指出我正确的方向,不胜感激!我什至不知道从哪里开始!非常感谢!

4

1 回答 1

0

您可以将数据保存在共享偏好中,然后使用公共 getter 函数来重用它们吗?

于 2016-08-31T19:02:17.730 回答