这是我用按钮设置通知的代码。
Intent receiverIntent = new Intent(ctx, ResponsivePrefsActivity.class);
PendingIntent pReceiverIntent = PendingIntent.getActivity(ctx, 1, receiverIntent, 0);
Intent clearIntent = new Intent(ctx, ResponsivePrefsActivity.class);
clearIntent.setAction("clear");
PendingIntent pClearIntent = PendingIntent.getActivity(ctx, 1, clearIntent, 0);
Intent colorsIntent = new Intent(ctx, ResponsivePrefsActivity.class);
colorsIntent.setAction("colors");
PendingIntent pColorsIntent = PendingIntent.getActivity(ctx, 1, colorsIntent, 0);
Intent animationIntent = new Intent(ctx, ResponsivePrefsActivity.class);
animationIntent.setAction("animation");
PendingIntent pAnimation = PendingIntent.getActivity(ctx, 1, animationIntent, 0);
Notification.Builder builder;
builder = new Notification.Builder(ctx).setSmallIcon(R.drawable.ic_launcher).setAutoCancel(false)
.setContentTitle("Draw Me: A Live Wallpaper").setContentText("Never get bored again!")
.setContentIntent(pReceiverIntent).addAction(R.raw.ic_menu_close_clear_cancel, "Clear", pClearIntent)
.addAction(R.raw.ic_menu_edit, "Colors", pColorsIntent).addAction(R.raw.ic_menu_play_clip, "Animation", pAnimation);
Notification notification = builder.build();
NotificationManager notificationManager = (NotificationManager) ctx.getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify(0, notification);
通知显示但按钮没有显示。我的设备有Android 4.1.1 我在Fragment中设置了这个通知。我究竟做错了什么?谢谢!
答案 0 :(得分:123)
让我告诉你一些非常尴尬的事情。 如果您的持续通知中有任何内容,您将看不到按钮。 通常,当您通过USB将手机连接到PC时会发生这种情况。 希望这能解决您的问题
答案 1 :(得分:27)
提醒任何有类似问题的人。 根据Android Notifications Guide,通知可以以两种样式显示:
因此,为了强制通知显示在Big View中,我们所要做的就是将其放在通知列表的顶部。这可以通过将When属性设置为0来完成,这使其成为通知中最早的属性! (有时虽然我们可能不想要这个)。所以请致电
setWhen(0)
通知你已经完成了。
答案 2 :(得分:23)
当您编辑文本时,如果列表中存在任何正在进行的通知,例如媒体播放器控件或IME切换器选项,则不会显示按钮。
幸运的是,只需将通知的优先级设置得很高就可以解决这个问题。我只使用过Notification.PRIORITY_MAX来解决这个问题,但PRIORITY_HIGH似乎也能正常工作。设置如下:
Notification notification = new Notification.Builder(myContext)
.setContentTitle(res.getString(R.string.my_title))
.setPriority(Notification.PRIORITY_MAX)
//The rest of your options
.build();
答案 3 :(得分:16)
Just do this :::
.setPriority(Notification.PRIORITY_MAX)
.setWhen(0)
完整代码是:
Notification noti = new Notification.Builder(this)
.setContentTitle("New mail from " + "test@gmail.com")
.setContentText("Subject").setSmallIcon(R.drawable.ic_launcher)
.setContentIntent(pIntent)
.setPriority(Notification.PRIORITY_MAX)
.setWhen(0)
.addAction(R.drawable.ic_launcher, "Call", pIntent)
.addAction(R.drawable.ic_launcher, "More", pIntent)
.addAction(R.drawable.ic_launcher, "And more", pIntent).build();
答案 4 :(得分:0)
在我的情况下,操作按钮没有显示,因为我使用自定义视图通知内容与RemoteViews()
答案 5 :(得分:0)
如果您想知道为什么“按钮”不与指定的图标一起显示(仅显示文本-甚至不显示为按钮,没有可见的边框-材质设计如此推测),可能是因为android决定放弃了显示图标,而不在addAction-Method的任何地方记录这种弃用情况。
上面(至少7年前)接受的答案中,至少没有一个在sdk-28(android 10)上对我显示任何图标-因此,我认为除非确定,否则这肯定是一个无证设计的决定:)>
答案 6 :(得分:-1)
只需在code
Notification n = new Notification.Builder(this)
.setSmallIcon(R.drawable.icon)
.setContentTitle("New mail from " + "test@gmail.com")
.setContentText("Subject")
.setContentIntent(pIntent).setAutoCancel(true)
.setStyle(new Notification.BigTextStyle().bigText(longText))
.build();
NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
// Hide the notification after its selected
notificationManager.notify(0, n);
在此添加您需要的内容..我希望它能帮到您..