我正在尝试重新设计我的应用程序,但我不确定最好的方法。
我目前有一个可扩展的列表视图,其中包含一些锻炼作为标题/父项。每个锻炼有 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 中,然后在保存项目并且用户单击特定日期后参考该状态
如果有人有任何帮助,或者可以指出我正确的方向,不胜感激!我什至不知道从哪里开始!非常感谢!