Две кнопки с PendingIntents - виджет - PullRequest
5 голосов
/ 28 октября 2011

Я создаю виджет с двумя кнопками. Один из них обновляет содержимое виджета, а второй должен запустить действие.

У меня есть два PendingIntent для каждого действия, но я не могу заставить их работать. Если один работает, другой нет.

Я пересмотрел код и не могу понять, в чем дело.

Любая помощь будет очень ценится.

Это код.

    RemoteViews controls = new RemoteViews(context.getPackageName(), R.layout.miwidget);

    Intent intent = new Intent("actony.com.ACTUALIZAR_WIDGET");
    intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, widgetId);


    Intent intentSettings = new Intent();  
    intentSettings.setClass(context,WidgetConfig.class);  


    PendingIntent pendingIntentUpdate = PendingIntent.getBroadcast(context, widgetId, intent, PendingIntent.FLAG_UPDATE_CURRENT);
    controls.setOnClickPendingIntent(R.id.BtnActualizar, pendingIntentUpdate);

    PendingIntent pendingIntentSettings =  PendingIntent.getActivity(context, 0, intentSettings, 0);
    controls.setOnClickPendingIntent(R.id.botonSettings, pendingIntentSettings);

Ответы [ 2 ]

2 голосов
/ 24 мая 2012

Проверьте эту ссылку, чтобы узнать, какая кнопка была нажата при наличии двух или более кнопок в виджете.

https://stackoverflow.com/a/10733049/1331593

Это должно работать ... Если это не работает, пожалуйста, дайте мне знать, в чем проблема ...

2 голосов
/ 08 января 2012

Попробуйте добавить getActivity PendingIntent.FLAG_UPDATE_CURRENT aswell ...

 PendingIntent pendingIntentSettings =  
      PendingIntent.getActivity(context, 0, intentSettings, PendingIntent.FLAG_UPDATE_CURRENT);

и, если возможно несколько виджетов, добавьте туда widgetId.

Убедитесь, что оба действия / трансляции перечислены в файле манифеста.

Кроме того, попробуйте создать намерение с помощью этого конструктора:

 Intent intent = new Intent(context,ACTUALIZAR_WIDGET.class);
 Intent intentSettings = new Intent(context,WidgetConfig.class);

добавить импорт при необходимости.

Надеюсь, что это поможет вам работать с виджетами.

...