Android. Handling button clicks in the statusbar

How can I handle clicking on the "apps" button?

StatusBar apps button

Custom_notification.xml:

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="apps"
    android:onClick="notification_apps"
    android:id="@+id/notification_apps"/>

Notification.java:

public class Notification {

private static Context context;

public static void setContext(Context _context) {
    Notification.context = _context;
}

@TargetApi(Build.VERSION_CODES.JELLY_BEAN)
public static void runNotification(){
    RemoteViews contentView = new RemoteViews(context.getPackageName(), R.layout.custom_notification);
    //contentView.setRemoteAdapter(R.id.notification_apps, new Intent(context, HomeActivity.class));

    // Create an Intent to launch ExampleActivity
    Intent intent = new Intent(context, HomeActivity.class);
    PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0);

    // Get the layout for the App Widget and attach an on-click listener
    contentView.setOnClickPendingIntent(R.id.notification_apps, pendingIntent);

    NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(context);

    mBuilder.setOngoing(true);
    mBuilder.setSmallIcon(R.drawable.home);
    mBuilder.setContent(contentView);

    Intent resultIntent = new Intent(context, HomeActivity.class);
    TaskStackBuilder stackBuilder = TaskStackBuilder.create(context);
    stackBuilder.addParentStack(HomeActivity.class);


    stackBuilder.addNextIntent(resultIntent);
    PendingIntent resultPendingIntent = stackBuilder.getPendingIntent(0,PendingIntent.FLAG_UPDATE_CURRENT);
    mBuilder.setContentIntent(resultPendingIntent);

    NotificationManager mNotificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
    mNotificationManager.notify(0, mBuilder.build());
}
}

HomeActivity.java:

public class HomeActivity extends Activity{
    //....
    public void notification_apps(View view) {
        Intent i = new Intent(HomeActivity.this, AppsListActivity.class);
        startActivity(i);
    }
}
Author: Pavel Stankevich, 2015-12-04

2 answers

In custom_notification.xml removed it:

android:onClick="notification_apps"

And in HomeActivity, I removed the click processing, and everything worked!

 1
Author: Pavel Stankevich, 2015-12-05 11:14:02

Describe the problem in the accompanying code. Otherwise, people will minusovat you, and you will not get an answer to your question.

Most likely, you put this View with RemoteViews. To hang an event handler on a button from your custom View you need the following:

remoteViews.setOnClickPendingIntent();
 0
Author: Joe Silent, 2015-12-04 23:10:29