繁体   English   中英

如何在ListView Android上显示一周内的日期

[英]How to display date in a week on ListView Android

我有这个:

Date date = new Date();
SimpleDateFormat curFormater = new SimpleDateFormat("EEEE, MMMM dd, yyyy"); 
String dateStr = curFormater.format(date);

setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, new String [] {dateStr}));

但它只显示一次,我想把它变成listview。 很多想法? 谢谢。

我不确定为什么你会想要一个日期的列表视图,但是,你的问题似乎是使用ListView的理解,例如你的数组有一个项目,如我的第一个例子

String[] = {"hello"};

这将只显示列表视图中的一个项目,如您的示例所示

String[] = {"hello","how","are","you"};

将显示4行,如果你想多次显示相同的日期,你可能会创建一个像这样的数组

int x = 5;

String[] print = new String[x];

for(int i = 0; i<5; i++) {
   print[i] = date;
}

这将打印出5行日期

尝试这样的事......

SimpleDateFormat curFormater = new SimpleDateFormat("EEEE, MMMM dd, yyyy"); 
GregorianCalendar date = new GregorianCalendar();
String[] dateStringArray = new String[7];

for (int day = 0; day < 7; day++) {
    dateStringArray[day] = curFormater.format(date.getTime());
    date.roll(Calendar.DAY_OF_YEAR, true);
}
setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, dateStringArray));

该数组只包含一个项目:

...new String [] {dateStr}...

您可以轻松地测试结果:

...new String [] {dateStr,dateStr,dateStr,dateStr,dateS}...

然后使用要显示的日期构建数组。

你应该尝试更具描述性,并详细说明你所追求的是什么。 我假设到现在为止你已经找到了如何根据已经给出的答案向列表中添加多个条目。

要使用后续日期填充列表,只需获取一个日历实例,并创建一个循环,将每个步骤的日期字段递增“一”。 就像是:

List<String> dateList = new ArrayList<String>();
Calendar calendar = Calendar.getInstance();
for (int i=0; i<31; i++) {
    calendar.add(Calendar.DATE, 1);
    SimpleDateFormat curFormater = new SimpleDateFormat("EEEE, MMMM dd, yyyy");
    dateList.add(curFormater.format(calendar.getTime()));
}
setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, dateList));

这应该会在今天向您显示列表中的下一个31天。

//编辑:哎呀,错过了MisterSquonk的回复,它涵盖了类似的方法......

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM