所以基本上我正在开发一个 Android (Java) 的任务应用程序。我想在我的主活动中创建一个排序功能,其中有 4 个按钮
All
、High_Priority
、Medium_Priority
、Low_Priority
,分别具有整数值 1,2 和 3。现在我的应用程序以以下结构将数据存储在 Firebase 实时数据库上
Firebase 结构:
<USER_ID (UID)>": {
"<Task_id>": {
"checked": false,
"colorCode": "#090808",
"date": "28 Apr 2024",
"description": "",
"Task_id": "-NwZF-mvOfZZOOXi_3NB",
"pointsAwarded": false,
"priority": 1,
"task": "High task",
"time": "12:00 am",
}
现在,我使用
TaskCardAdapter
类从 Model
中的 firebase 数据库获取优先级整数,并根据该整数设置 task_Priority
文本视图。现在,当用户单击“高”、“低”或“中”按钮时,我想根据主活动中 TaskRecyclerView
中的整数对任务进行排序。当用户单击 High_Priority
按钮时,我只想显示那些优先级为 1 的任务,中和低也是如此。
我会在 MainActivity 上创建 4 个列表,每个列表都有不同的选项,全部、高、中、低。您可以在从 firebase 获取所有内容后创建它们,然后过滤并创建其他内容。
然后,当您单击过滤按钮时,您必须更新回收器视图,因为您已通知适配器数据已更改。
// clear old list
data.clear();
// make data equals to the list that you want
data.addAll(mediumList);
// notify adapter
adapter.notifyDataSetChanged();
适配器具有对数据的引用,因此重要的是不要将数据设置到新对象。相反,从数据中清除旧项目,然后添加新项目。
这就是我要做的,如果你想更好地了解更新回收器的项目,你可以检查这个如何更新RecyclerView适配器数据