解决ListView小部件不可接受的问题

时间:2011-09-14 20:21:41

标签: android listview android-widget

我有一个活动可以检索我想在窗口小部件中显示的项目列表。由于Android OS 3.0之前的小部件内不支持ListView,我想就如何实现这一点获得其他意见。

也许有些人创造了这样的小部件?

我想将每个项目加载到窗口小部件中,加载到TextView中并显示下一个箭头。单击下一个箭头时,将显示下一个项目而不运行活动并再次检索它。

如果有人可以请提供有关如何执行此操作的更多信息,或者可能是更好的方式

由于

1 个答案:

答案 0 :(得分:2)

首先,如果您还没有,我建议您阅读http://developer.android.com/guide/topics/appwidgets/index.html#AppWidgetProvider。您可以设置AppWidget的布局以包含TextView和下一个按钮/图像。请记住给它们ID,以便您可以设置setOnClickPendingIntent。一个AppWidgetProvider的基础是BroadcastReceiver的基础,所以你可以使用自定义Intent(即MyAppWidgetProvider.ACTION_NEXT)创建一个intent,它将你的列表或数组的光标或索引推进到下一个项目,并在onUpdate中,渲染您想要显示数据的RemoteView。

我不清楚你的意思是你有一个活动来检索项目列表,但是如果你想将一个事物列表发送到AppWidget来显示,你可以通过你的Activity来实现这一点。创建一个特定于AppWidgetProvider的Intent,并将该列表作为appWidgetProvider中的onReceive将接收的额外内容。 AppWidgetProvider是BroadcastReceiver的子类,因此您有onReceive。或者,如果您想从活动中获取该列表,请通过AppWidgetProvider的onUpdate或onEnabled将其从活动中获取。

无论哪种方式,您都可以将数据存储到全局对象,并在触发onUpdate或向AppWidget广播其他内容时使用它执行您想要的操作。

如果你在网上搜索,你会发现更多这方面的例子。 Google的StackView示例虽然使用了StackView(仅在3.0之后可用),但它是一个很好的示例,说明如何使用onReceive和操作来指导窗口小部件和数据的工作方式。