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

时间:2011-11-27 02:29:37

标签: android listview date

我有这个:

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。很多想法? THX。

4 个答案:

答案 0 :(得分:1)

我不确定为什么你会想要一个日期的列表视图,但是,你的问题似乎是使用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行日期

答案 1 :(得分:1)

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

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));

答案 2 :(得分:0)

数组只包含一个项目:

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

您可以轻松地测试结果:

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

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

答案 3 :(得分:0)

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

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

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的回复,其中包含了类似的方法......