通知显示数字,而不是 contentText

Posted

技术标签:

【中文标题】通知显示数字,而不是 contentText【英文标题】:Notification displays numbers, not the contentText 【发布时间】:2021-01-29 14:48:50 【问题描述】:

我的通知显示数字,而不是文本。我的字符串是西里尔字母,但这应该不是问题。另外,字符串的长度是否重要? ContentText 包含 5 个简短的单词。

这里是通知的sn-p代码,有效,但只显示数字:

NotificationCompat.Builder builder = new NotificationCompat.Builder( this, CHANNEL_ID) ;
    builder.setContentTitle(String.valueOf(R.string.appName));
    builder.setContentIntent(notifyPendingIntent);
    builder.setContentText(String.valueOf(R.string.wRevNow));
    builder.setSmallIcon(R.drawable.logo ) ;
    builder.setAutoCancel(true);
    builder.setChannelId(CHANNEL_ID) ;
    return builder.build();

这是我得到的:

【问题讨论】:

【参考方案1】:

问题在于String.valueOf(R.string.appName),其中R.string.appName 是标识特定资源的唯一整数,String.valueOfinteger value 转换为string,从而使您的通知中出现数字滑动,请尝试以下操作

// code remains same

builder.setContentTitle(getString(R.string.appName));

builder.setContentText(getString(R.string.wRevNow));

//rest of the logic remains same

【讨论】:

当然,如果解决了,请接受答案,祝您编码愉快:)【参考方案2】:

R.string 资源包包含 int 值,它们代表应用程序资源中的字符串。 String.valueOf() 仅返回该 int (id) 的字符串表示形式。从上下文中使用 getString(id: Int) 方法来访问它们。您的代码如下所示:

NotificationCompat.Builder builder = new NotificationCompat.Builder( this, CHANNEL_ID) ;
    builder.setContentTitle(getString(R.string.appName));
    builder.setContentIntent(notifyPendingIntent);
    builder.setContentText(getString(R.string.wRevNow));
    builder.setSmallIcon(R.drawable.logo ) ;
    builder.setAutoCancel(true);
    builder.setChannelId(CHANNEL_ID) ;
    return builder.build();

【讨论】:

以上是关于通知显示数字,而不是 contentText的主要内容,如果未能解决你的问题,请参考以下文章

推送通知显示本地化常量而不是消息

在 iOS 中显示视图而不是默认通知

将 iOS 推送通知显示为警报弹出窗口而不是横幅样式

我可以从通知中启动对话活动,使其显示在我的应用程序窗口上而不是空白背景上吗?

iOS - 推送通知:它是不是总是显示通知

点击打开登录活动而不是主要活动的通知