想做一个widget里面包含listview的复杂布局,于是查了些资料。整理了一下,形成自己的思路,把它写下来。第一次写,希望多给些意见。
我想先从我要实现的界面开始介绍起,请大家耐心读完它
首先是这样一个界面,这是在widget里面的布局,可以看到的是这个widget布局里面 有两部分需要处理,一是图标“花”点击之后应该有个动作,第二是如何处理listview的数据。而我要实现的是动态加载listview的数据,数据来源于数据库。
了解过widget的同学应该知道实现widget,首先需要重写AppWidgetProvider,而我们要实现listview还需要另外两个类,RemoteViewsService、RemoteViewsFactory,准备好三个类之后才能进行下面详细的实施,至于这三者的作用我将会详细的介绍给大家。
1、RemoteViews 和AppWidgetProvider
RemoteViews翻译为远程试视图,是widget里面操作视图时必须用的,创建widget时,只需继承AppwidgetProvider,然后重写里面的Update就可以了。
像这样:
public class WidgetProvider extends AppWidgetProvider{
private AppWidgetManager appWidgetManager;
private int[] appWidgetIds;
private Context context;
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
super.onUpdate(context, appWidgetManager, appWidgetIds);
}
}
然后再onUpdate里面处理RemoteViews,下面具体根据我这个案例,介绍怎么处理Remoteviews
this.appWidgetIds = appWidgetIds;
this.appWidgetManager = appWidgetManager;
this.context = context;
Timer timer = new Timer();//时时更新
timer.schedule(new TimerTask() {
@Overr