如何获取通知展开视图的自定义日期格式

时间:2010-06-06 06:12:47

标签: android

如果我收到新消息,则在通知展开视图中仅显示时间。假设如果我今天收到一条消息(即06/06/2010),它应该只显示一个字符串“今天”,明天它应该在收到的消息上显示日期,即它应该显示日期06/06/2010

2 个答案:

答案 0 :(得分:0)

您需要编写自定义DateFormat对象,然后调用DateFormat.format(Date)

答案 1 :(得分:0)

如果你的日期是毫秒,那么

long myDate = Calendar.getInstance().getTimeInMillis();

否则你可以获得calander和setTime的实例

SimpleDateFormat sdf = new SimpleDateFormat();
sdf.applyPattern(“MM/dd/yyyy”);
Calendar calendar = Calendar.getInstance();
Date processDate = sdf.parse(“4/10/2007″);
calendar.setTime(processDate);
long myDate = calendar.getTimeInMillis();

然后您可以将日期与系统日期区分开来

String dateMessage = "today";
final int dayInterval = 86400000;
long difference = Calendar.getInstance().getTimeInMillis() - myDateInMillis;
if (difference > dayInterval)
    //dateMessage = format date MM/DD/YYYY...

从此处您可以更新正在进行的通知,以显示预期的日期值。请参阅Creating a Custom Expanded View上的开发人员文档。

有关更新通知的说明。如果您有自定义展开视图。您可以使用Remoteview访问器更新TextViews。上面的链接描述了如何很好地完成此操作。

RemoteViews contentView = new RemoteViews(getPackageName(), R.layout.custom_notification);
contentView.setTextViewText(R.id.text, mTitle);

希望这有帮助。