如何在Android Widget上实现Button

big*_*ony 23 android widget

我刚刚开始使用Android开发,我创建了一个漂亮的小部件,在我的主屏幕上显示一些信息.但是,我现在想要在我的小部件上实现一个按钮来更新我的小部件TextView中的信息.

任何人都可以建议如何做到这一点?

谢谢

big*_*ony 23

已解决 - 如果您想创建一个Button来更新Android AppWidget,我可以确认不需要Activity.

我已经能够实现我的AppWidgetProvider类,以便它在AndroidManifest.xml中向Broadcast接收器注册一个android.appwidget.action.APPWIDGET_UPDATE intent-filter,然后在AppWidgetProvider类中触发onUpdate事件(然后运行UpdateService).

<!-- 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>
Run Code Online (Sandbox Code Playgroud)

然后,我的AppWidgetProvider类中的UpdateService使用onHandleIntent来运行私有buildUpdate方法 - 通过调用setOnClickPendingIntent来注册onClick事件,如下所示:

// 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);
Run Code Online (Sandbox Code Playgroud)

以下是工作示例的一些源代码的链接,其中显示了如何使用更新按钮来更新Twitter小部件:

https://github.com/commonsguy/cw-advandroid/tree/b01438e7f0fed8f795ddec4be43066905f03d0cc/AppWidget/TwitterWidget