【发布时间】:2015-09-23 10:13:27
【问题描述】:
如果消息来自同一天,如何在我的 ListView 中隐藏日期?如果消息来自同一天,我想显示一次日期。
我的代码如下:
final message Message = getItem(cursor.getPosition());
//Get next chat message
message nextChatMessage;
if (cursor.getPosition() > 0) {
//Move cursor forward
nextChatMessage = getItem(cursor.getPosition() + 1);
} else {
nextChatMessage = null;
}
boolean isDiffDate = (nextChatMessage == null || !DateTimeUtil.isEqualDate(message.messageDate, nextChatMessage.messageDate));
获取物品:
@Override
public Message getItem(int position) {
Cursor cursor = getCursor();
if(cursor != null && cursor.moveToPosition(getCount() - position - 1)) {
message Message = new message ();
Message .parseChatMessage(cursor);
return Message ;
} else {
return null;
}
}
谢谢。
【问题讨论】:
-
您通常会在
getView中隐藏一个视图,所以这实际上是添加到您的问题中的有趣代码。 -
@SaschaKolberg,嗨。如果布尔值为 True,我会在 getView 中隐藏视图。
-
嗯,日期是同一天,如果
isDiffDate是false,不是true。但是,知道DateTimeUtil.isEqualDate返回什么也很有趣。 -
@SaschaKolberg,如果这两个日期不同,它将返回一个 true 并显示两个不同的日期。如果日期相同,则第一次只显示日期,隐藏其他日期相同的消息。但是,我的 'nextChatMessage' 没有指向下一个光标。因此,与当前日期比较的日期混淆了实际日期。请指教。谢谢。
标签: android date listview cursor adapter