Виджет Android: как определить, какая кнопка была нажата? - PullRequest
3 голосов
/ 02 декабря 2011

В моем виджете есть несколько кнопок ImageButton, чтобы установить для них событие onClicked, я использую PendingIntent:

Intent intent = new Intent(context, UpdateService.class);
PendingIntent pendingIntent = PendingIntent.getService(context, 0, intent, 0);

RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.main);
remoteViews.setOnClickPendingIntent(R.id.Button1, pendingIntent);

Если я хочу использовать только одно PendingIntent и Service для всех кнопок, как определить, какая кнопка была нажата? Спасибо тебе!

Ответы [ 2 ]

0 голосов
/ 11 ноября 2014

Как определить, какая кнопка была нажата?Спасибо тебе!

Как насчет этого?Я добавил этот код в свой файл MainActivity.java.В файле Activity_main.xml есть различные кнопки, которые в зависимости от того, какую кнопку вы нажимаете, переходят на конкретный веб-сайт.Я не хотел повторять функцию openWebSite () несколько раз, поэтому вместо этого я попробовал v.getID (), и он возвращает уникальное значение для нажатой кнопки.Я буду использовать этот уникальный номер, чтобы перейти на правильный сайт.

    public void openWebSite(View v) {

    if (v.getId()==2131230722) {
    String url = "https://www.facebook.com/pages/Emily-Otnes/110931118993282";
    Intent i = new Intent(Intent.ACTION_VIEW);
    i.setData(Uri.parse(url));
    startActivity(i);

    }
    Log.e("test", String.valueOf(v.getId()));
}
0 голосов
/ 02 декабря 2011

Я не понимаю, почему вы хотите использовать только один PendingIntent .Ответ - , чтобы создать несколько намерений для каждого клика.Самое простое - дать каждому Намерению специальное действие.Таким образом, вы можете различить события щелчка, когда получите намерение.

...