如何在Android Widget上实现button

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

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

谢谢

  • Android 4.0:小部件没有出现?
  • 更改remoteView ImageView背景
  • 意图在android上启动时钟应用程序
  • 我怎样才能使Android的寻求酒吧顺利移动?
  • Android自定义小部件样式:如何将它们放入命名空间?
  • Android的Widget使用cordova
  • 在Android Widgets中实现ListView
  • 通过点击小部件开始活动
  • 解决 – 我可以确认一个活动是不需要的,如果你想创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不支持这些类的后代。