解决不可接受的 ListView 小部件

Posted

技术标签:

【中文标题】解决不可接受的 ListView 小部件【英文标题】:Working around a ListView widget not being Acceptable 【发布时间】:2011-11-17 08:39:43 【问题描述】:

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

也许你们中的一些人已经创建了这样的小部件?

我想将每个项目加载到小部件中,加载到 TextView 中并显示下一个箭头。单击下一个箭头时,将显示下一个项目,而 Activity 不会运行并重新检索它。

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

谢谢

【问题讨论】:

“我想将每个项目加载到小部件中,进入 TextView 并显示下一个箭头。单击下一个箭头时,将显示下一个项目” ListView. 【参考方案1】:

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

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

无论哪种方式,您都可以将数据存储到一个全局对象中,并在触发 onUpdate 或向您的 AppWidget 广播其他内容时使用它做您想做的事情。

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

【讨论】:

以上是关于解决不可接受的 ListView 小部件的主要内容,如果未能解决你的问题,请参考以下文章

我的 ListView 构建器的 ListTile 小部件不可滚动并且显示渲染问题

ListView 不可点击,行中的所有小部件都是 TextView

可滚动的 ListView 将背景颜色渗入相邻的小部件

有没有一个绑定的小部件可以约束ListView.builder在一个Column小部件中?

带有集合(ListView)的Android小部件不显示项目

ListView.builder 小部件不滚动