【发布时间】:2017-08-30 18:17:41
【问题描述】:
我在日历中工作出现在 ListView 我有一个元素的参考类
internal class MyItem {
var name: String? = null
var number: String? = null
var nameDay:String? = null
}
在 MainActivity 我创建 ArrayList 来保存元素并从日历中获取实例
private var arrayList: ArrayList<MyItem>? = null
private var cal:Calendar= Calendar.getInstance()
从 onCreate 函数调用到填充的 ArrayList 像这样
private fun loaddata() {
变量准确地告诉我们一个月的天数
var maxDays:Int = cal.getActualMaximum(Calendar.DAY_OF_MONTH)
变量给我们带来了一个完整的日期
var today:Int = cal.get(Calendar.DATE)
一些 FormatSimpleDate
var sdfDay:SimpleDateFormat = SimpleDateFormat("dd")
var sdfNamDay:SimpleDateFormat = SimpleDateFormat("E")
var sdfMonth:SimpleDateFormat = SimpleDateFormat("MMM")
然后我循环 45 天
for( i in 0.. 45){
val myItem = MyItem()
myItem.name = sdfMonth.format(cal.time)
myItem.number = sdfDay.format(cal.time)
myItem.nameDay = sdfNamDay.format(cal.time)
cal.add(Calendar.DATE,1)
arrayList!!.add(myItem)
}
输出类似
AUG Wed 30 / AUG Thu 31 / Sep Fri 01 / Sep Sat 02 / ... / Sep Sat 30 / Oct Sun 01 / Oct Mon 02 / etc
该功能完美运行,没有任何错误 但我想在第一排月日出现在我面前 在第二行开始只显示一天,直到月份变化 如果月份更改为下一个 显示在行月和日 仅在下一行演出日 像这样
AUG Wed 30 / Thu 31 / Sep Fri 01 / Sat 02 / ... / Sat 30 / Oct Sun 01 / Mon 02 / etc
我做了不止一个 if 语句
但效果不好
任何人都可以帮助我吗
【问题讨论】:
标签: java android calendar kotlin