Как реализовать Кнопку на Виджете Android

Я просто начинаю с разработкой Android, и я создал миленький виджет, который отображает некоторую информацию о моем главном экране. Однако я теперь хочу реализовать Кнопку на своем виджете, который обновляет информацию в моем виджете TextView.

Кто-либо может советовать, как пойти о выполнении этого?

Спасибо

23
задан bigtony 17 January 2010 в 22:56
поделиться

2 ответа

Решено - я могу подтвердить, что активность не требуется, если вы хотите создать кнопку для обновления Android appwidget.

Я смогли реализовать свой класс AppWidgetProvider такой, что он регистрирует Android.appwidgeget.action.appwidget_update actent.Appy.appwidgege_update Intent-Filter с ресивером широковещания в AndroidManifest.xml, который затем пожаровал событие ONUPDate в классе AppWidgetProvider (который в Затем поворот управляет обновленнымЕРервицем).

<!-- Broadcast Receiver that will process AppWidget updates -->
<receiver android:name=".MyWidget" android:label="@string/widget_name">
   <intent-filter>
      <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
   </intent-filter>
   <meta-data android:name="android.appwidget.provider" android:resource="@xml/widget" />
</receiver>

UpdateService в моем классе AppwidGidProvider затем использует Onhandleintent для запуска частного метода Containupdate - который регистрирует событие OnClick с вызовом для SetonClickPendentIntent следующим образом:

// set intent and register onclick
Intent i = new Intent(this, MyWidget.class);
PendingIntent pi = PendingIntent.getBroadcast(context,0, i,0);
updateViews.setOnClickPendingIntent(R.id.update_button,pi);

Вот ссылка на какой-то исходный код рабочего примера, который показывает Как можно использовать кнопку обновления для обновления виджета Twitter:

https://github.com/commonsguy/cw-advandrey/tree/B01438E7F0FED8F795DDEC4BE4306905DDEC4BE4306905F03D0CC/AppWidget/twitterwidget

23
ответ дан 29 November 2019 в 02:44
поделиться

Кнопка поддерживается в AppWidget, поэтому не уверена, в чем проблема. Посмотрите на этот пример на том, как назначить действия через Views.setonclickPendingIntent (r.id.yourckiew ID, Yourintent);

объект Remoteviews (и, Следовательно, приложение виджет) может Поддержите следующие классы макета:

Framelayout Linearlayout RelativeLayout

и следующие Классы виджета:

Кнопка AnalogClock Chronometer ImageButton ImageView ProgressBar. TextView потомки этих классов не поддерживаются.

4
ответ дан 29 November 2019 в 02:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: