Android: 在状态栏通知中添加一个按钮

18
我正在尝试在Android中创建自定义状态栏通知,其中包含文本以及一个按钮。该按钮可以执行与单击通知本身不同的操作。这是否可能?另外,我也可以在那里放置一个按钮图像。我知道如何放置一张图片,但对于嵌入在RemoteViews中的图片的OnClick处理方式还不确定。非常感谢您的帮助。
提前感谢。

1
我非常怀疑这是可能的。 - Falmarri
https://dev59.com/x2jWa4cB1Zd3GeqPutk4 - Muzikant
3个回答

4

啊,谢谢。那正是我想要的。但我仍然不确定该如何做。似乎我需要使用RemoteViews,但它没有添加按钮的成员函数。我该如何为按钮设置OnClick事件?如果这太新手了,对不起。 - user192629
3
理论上,setOnClickPendingIntent应该允许您捕获对任何对象(包括按钮)的点击,但我似乎无法在这个应用程序中使其工作。有人成功使用过这个函数吗? - FixerMark
我有同样的问题。我将按钮ID作为viewID提供,并且希望在单击按钮时触发pendingIntent,但是没有任何变化。当通知视图中的任何点被点击(包括按钮)时,都会触发主要的pendingIntent,即notification.contentIntent。 - Gallal
@Gallal,你不需要为你的RemoteViews设置setImageViewResource和setTextViewText。当它们被设置时,contentIntent和按钮的PendingIntent都会被调用。 - KITT
@Gallal,你找到解决方法了吗?使用按钮的ID调用setOnClickPendintIntent似乎不起作用。 - garbagecollector

1
我也在这方面工作。从HoneyComb开始很简单:看看音乐应用程序(播放时它有一个状态栏控件)。您可以使用your_notification_remote_view_instance.setOnClickPendingIntent(R.id.a_button_in_notification, pending_intent_to_be_handled_by_a_service);实现您自己的通知,当然要支持处理意图的服务。虽然早期版本中可以嵌入按钮,但按下时它们不会获得焦点或点击。

1

尝试使用这种方式,第一个是视图ID,第二个是待处理意图。

RemoteViews.setOnClickPendingIntent(R.id.push_notifi_content, Pdit);

我已经尝试过了,但似乎只支持Android 4.0。


1
在Android 2.3.4上也是可能的(至少在我的SGS2上),我正在使用Mp3播放器“PowerAMP”,它在通知栏中有几个按钮。 - Nippey

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接