gpt4 book ai didi

java - 如何按月/年过滤数据

转载 作者:行者123 更新时间:2023-12-02 10:59:39 27 4
gpt4 key购买 nike

我有一个这样的收入模型

@Table(name = "Income") public class Income extends Model {
@Column(name = "AmountDate")
public String amountDate;

@Column(name = "Amount")
public int amount;

@Column(name = "Day")
public int day;

@Column(name = "Month")
public int month;

@Column(name = "Year")
public int year;
}

我想从数据库中过滤数据,如下所示。在列表中查看月/年,如下所示 enter image description here

在 ListViewItem 上单击“我想显示所选月份/年份的所有数据”。

所以,我的问题是如何在listView中显示月/年(如果数据库中存在月份数据)?

最佳答案

您可以使用两种不同的方式

  1. 您可以创建一个名为 group 的函数,其代码应如下所示:

    fun group(list : List<Income>) : Map<String,List<Income>> {    
    val map = HashMap<String,List<Income>>()
    list.foreach {
    val month = getMonthOf(it.amountDate)
    if(map.contains(mounth)){
    map[month].add(it);
    } else {
    val arrayList = ArrayList<Income>()
    arrayList.add(it)
    map[month] = arrayList
    }
    }
    return map
    }

其中getMonthOf是一个使用Date类提取收入年份+月份的方法

然后您只需使用RecyclerView,然后创建自定义列表

最好使用List,它的项目也是列表。请参阅 here 了解这一点

有关解析日期,请参阅 here

2.您可以将日期保存在数据库中的三个(年份、安装和日期)中,而不是将日期保存在一个字段中,您可以简单地过滤列表并创建 map ,就像我在此处发送的第一种方式

所以这是用于获取一年中每个月的唯一字符串的getMonthOf代码:

fun getMonthOf(income:Income) = "${income.year}/${income.month}"

现在您只需将 map 发送到适配器并制作列表即可

关于java - 如何按月/年过滤数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51431685/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com