Adding onClick Action To Button In Notification
14,803
You may have to register your listner in AndroidManifest.xml
.
Take a look at this one
Related videos on Youtube
Author by
ariefbayu
Project Manager at AkuPeduli.Org and a proud Mozilla Representative. I do blogging in Bahasa Indonesia. Code I wrote is CC-by-SA. Please, give proper attribution whenever you use it to generate money.
Updated on June 04, 2022Comments
-
ariefbayu about 2 years
I'm trying to add button to Notification using custom layout. I was able to add the layout and display the button. However, I still can't figure out a way to add click listener to the button. Here is the relevant code I have:
Codes to add custom layout notification:
String ns = Context.NOTIFICATION_SERVICE; mNotificationManager = (NotificationManager) ctx.getSystemService(ns); CharSequence tickerText = "Quick Application Launcher"; long when = System.currentTimeMillis(); Notification.Builder builder = new Notification.Builder(ctx); Notification notification=builder.getNotification(); notification.when=when; notification.tickerText=tickerText; notification.icon=R.drawable.ic_launcher; RemoteViews contentView=new RemoteViews(ctx.getPackageName(), R.layout.custom_notification); Intent volume=new Intent(ctx, NotifActivityHandler.class); volume.putExtra("DO", "2"); PendingIntent pVolume = PendingIntent.getActivity(ctx, 1, volume, 0); contentView.setOnClickPendingIntent(R.id.btn2, pVolume); notification.contentView = contentView; notification.flags |= Notification.FLAG_ONGOING_EVENT; mNotificationManager.notify(2345345, notification);
This is the NotifActivityHandler code:
public class NotifActivityHandler extends Activity { private NotifActivityHandler ctx; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); ctx=this; String action= (String)getIntent().getExtras().get("DO"); Log.i("LOG", "lauching action: " + action); if(action.equals("1")){ } else if(action.equals("2")){ } else if(action.equals("config")){ Intent i = new Intent(NotifActivityHandler.this, ConfigActivity.class); startActivity(i); } } }
Codes above doesn't produce any log even if I put
Log.i
. I'm not sure what is wrong with this. Any help is appreciated.update
I tested this on ICS device.
-
ariefbayu about 11 yearsyou are right, I forgot to register my
NotifActivityHandler
listener :( -
Ashwin N Bhanushali about 10 yearsWhat if I do not want to launch activity on click of button I just want to take simple action.for example pause the song.