如何在Android Widget上实现button

我刚刚开始使用Android开发,并创build了一个很好的小部件,在我的主屏幕上显示一些信息。 不过,我现在想在我的小部件上实现一个button,更新我的小部件TextView中的信息。

任何人都可以build议如何去做这个?

谢谢

Solutions Collecting From Web of "如何在Android Widget上实现button"

解决 – 我可以确认一个活动是不需要的,如果你想创build一个button来更新Android AppWidget。

我已经能够实现我的AppWidgetProvider类,以便它在AndroidManifest.xml中注册一个android.appwidget.action.APPWIDGET_UPDATE意图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> 

然后,我的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); 

这里是一个工作示例的一些源代码的链接,它显示了如何使用更新button来更新Twitter部件:

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

appwidget支持button,所以不知道是什么问题。 看看这个例子如何通过views.setOnClickPendingIntent(R.id.YOURVIEW ID,yourIntent);

RemoteViews对象(以及因此的App Widget)可以支持以下布局类:

FrameLayout LinearLayout RelativeLayout

以下小部件类:

AnalogClockbutton计时器ImageButton ImageView ProgressBar TextView不支持这些类的后代。