Java 如何按月/年筛选数据
我有一个这样的收入模型Java 如何按月/年筛选数据,java,android,listview,Java,Android,Listview,我有一个这样的收入模型 @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(n
@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;
}
我想从数据库中筛选数据,如下所示。在listView中,月份/年份如下
并在ListViewItem上单击我想显示所选月份/年份的所有数据
所以,我的问题是,如果listView中的数据库中存在月数据,如何显示月/年?您需要为listView上的此类操作创建自定义listView
你可以参考这篇文章,希望对你有所帮助。你可以使用两种不同的方法 您可以创建一个名为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
}
现在,您只需将地图发送到适配器并列出列表即可这是如何过滤的?看起来你只是在显示数据。当然,现在知道amountDate包含,很难说您想做什么。-为什么amountDate是字符串而不是日期类型,例如java.util.date或java.time.LocalDate?我想按月/年对数据进行分组,单击listview项后,打开包含所选月/年所有数据的新片段。。我在日期上遇到了一些问题,所以我决定这样保存它。如果你想分组,为什么要说过滤器?请编辑问题以澄清它。我已经为天、月、年设置了单独的字段。我会像你说的那样尝试。。。谢谢。你能用我添加的这三个字段更新你的代码吗。。谢谢你的回答,我需要把这个kotlin代码转换成java。。这需要一些时间。
fun getMonthOf(income:Income) = "${income.year}/${income.month}"