Android一个应用中展示多个多种样式的Widget

首先来看下我们要做的功能:类似百度搜索的插件,一个应用中有多种样式的Widget


首先来看下我们的项目的目录结构


如果你想做两个不同的样式,就要有两个AppWidgetProvider的子类,具体的相关Widget基础知识可以查看我的博客关于Widget的内容:http://blog.csdn.net/caicongyang/

如何保证在在两个小插件同时拉到桌面上是都能用呢?下面是AppWidgetProvider的子类的关键code

        @Override
	public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
		int n = appWidgetIds.length;
		for (int i = 0; i < n; i++) {
			RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.simple);
			appWidgetManager.updateAppWidget(new ComponentName(context, SimpleWidget.class), views);  //SimpleWidget.class是类名
		}
	}

在每一个继承AppWidgetProvider的子类中的onUpdate方法都必须循环遍历appWidetIds数组,并且在更新自己的RemoteViews视图。

最后不要忘记在配置文件里配置你的widget

         <receiver
            android:name="com.bonson.etqqt.TerminalWidget"
            android:label="@string/application_name" >
            <intent-filter>
                <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
            </intent-filter>

            <meta-data
                android:name="android.appwidget.provider"
                android:resource="@xml/complex_widget" />
        </receiver>
        <receiver
            android:name="com.bonson.etqqt.SimpleWidget"
            android:label="@string/application_name" >
            <intent-filter>
                <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
            </intent-filter>

            <meta-data
                android:name="android.appwidget.provider"
                android:resource="@xml/simple_widget" />
        </receiver>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值