【问题标题】:Recyclerview and items grouped by dayRecyclerview 和按天分组的项目
【发布时间】:2019-03-12 22:36:43
【问题描述】:

我有一个月中某天的费用实体,我想在回收商视图项目中使用它按天分组。在每一个项目中,我希望在项目顶部和当天创建的所有对象下方都有一天。我正在使用房间。但是没有父类的实体可以做到吗?

费用:

@Entity(tableName = "expense_table")
public class Expense  {

@PrimaryKey(autoGenerate = true)
private int expenseId;
private String note;
private Double value;
private String type;
private Long dateLong = System.currentTimeMillis();
private String date = new SimpleDateFormat("MM/yyyy").format(new Date(dateLong));
private static Calendar cal = Calendar.getInstance();
private int month = cal.get(Calendar.MONTH);
private int week = cal.get(Calendar.WEEK_OF_YEAR);
private int day = cal.get(Calendar.DAY_OF_MONTH);
private int dayOfWeek = cal.get(Calendar.DAY_OF_WEEK);
private String weekDay = new DateFormatSymbols().getWeekdays()[dayOfWeek];

【问题讨论】:

  • 你应该问如何在回收视图中对项目进行分组,显示数据结构并没有添加那么多。
  • 没有找到本地的方式来做这个以太你手动做,构建viewholder,adpaters等等,或者你找到一个为你做切片的库。听起来你想要消耗性部分,这是另一个问题。

标签: android android-recyclerview android-room


【解决方案1】:

尝试使用 Room 查询执行以下操作:

@get:Query("SELECT * FROM expense_table ORDER BY day DESC")
val all: LiveData<List<Expense>>

【讨论】:

  • 好吧,看起来很有趣。但是如何创建可扩展项目?
  • GROUP BY 查询在哪里?
  • 你的意思是,创建一个按日期分隔的部分的回收视图?像这样例如:stackoverflow.com/a/35820668/5314844
  • 很好,除了手动做之外,没有找到本地的做部分的方法。
  • 在这种情况下,我认为没有本地方法可以做到这一点。有时你可以在没有本地工具的情况下在 Google UI 指南上找到建议。但是有很好的开源解决方案可用。
【解决方案2】:

当您访问数据时,您必须使用GROUP BY day 进行一些查询。这是一个使用 3D 方库 Sticky Headers in a RecycleView 的解决方案,用于显示组。

【讨论】:

    猜你喜欢
    • 2018-02-10
    • 1970-01-01
    • 2022-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多