android appwidget 点击事件详解 多个控件多个按钮不同响应

来源:互联网 发布:淘宝怎么快速提升信誉 编辑:程序博客网 时间:2024/05/19 12:26

一般的桌面控件例子较多,包括怎么更新以及设置图片等,本文不再介绍,主要讲解appwidget的一些小细节

最终效果如图


一个桌面控件有3个按钮,每拖出一个控件,控件里的按钮不同响应


多个桌面控件响应不同按钮事件,onUpdate第三个参数

的onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds)

第三个参数返回id,就是每个控件实例都有唯一的id,使用该id区分每个控件

这里返回为数组,一般情况只会返回1个id,如拖出新控件。

更新时使用appWidgetManager.updateAppWidget(int appWidgetId, RemoteViews views)单独更新每个控件

至于同个控件里的3个按钮使用view的id区分就行了。


不同按钮启动同一个Activity或Service,PendingIntent.getActivity的第二个参数

PendingIntent.getActivity(Context context, int requestCode, Intent intent, int flags)的第4个参数标志设为PendingIntent.FLAG_UPDATE_CURRENT就能在intent里带参数来区分不同控件的不同按钮。

第二个参数requestCode用于区分不同PendingIntent实例,所以在启动同一个Activity或Service时,每个PendingIntent要设置不一样的值来生成不同实例,否则前面intent带的参数都被后者覆盖。例如设为appwidgetId*3+viewId


源码下载地址 http://download.csdn.net/detail/qazqwdxz/8900785


0 0
原创粉丝点击