我试图将此 onClick
监听器放在服务内部,以在服务内部的自定义 xml
View 中注册来自 button
的点击一个通知栏。但是 onClickListener
得到编译器错误。有谁知道为什么会出现编译错误?
RemoteViews remoteviews = new RemoteViews("com.example.test", R.layout.custom_notifications);
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(AudioService.this)
.setContent(remoteviews)
.setSmallIcon(R.drawable.ic_launcher)
.setContentTitle("My notification")
.setContentText("Hello World!")
.setOngoing(true);
remoteviews.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Toast.makeText(AudioViewer.this, "play button was clicked", Toast.LENGTH_LONG).show();
}
});
编译器报错如下图所示:
最佳答案
您需要改用 setOnClickPendingIntent
。 RemoteViews 类没有定义 setOnClickListener
方法。
你需要做这样的事情:
this.registerReceiver(new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
Toast.makeText(AudioViewer.this,
"play button was clicked", Toast.LENGTH_LONG).show();
}
}, new IntentFilter("MyRemoteViewsBroadcast"));
PendingIntent pi = PendingIntent.getBroadcast(this, 0,
new Intent("MyRemoteViewsBroadcast"), 0);
remoteviews.setOnClickPendingIntent(R.layout.custom_notifications, pi);
关于android - 如何在服务中放置一个 onclick 监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13966485/