如何将自定义 ListAdapter 设置为 appwidget 中的列表视图?
Posted
技术标签:
【中文标题】如何将自定义 ListAdapter 设置为 appwidget 中的列表视图?【英文标题】:How to set custom ListAdapter to list view in appwidget? 【发布时间】:2013-01-24 23:29:42 【问题描述】:我有一个列表视图。我需要为每个列表项创建一个自定义视图,因此我创建了一个自定义 ListAdapter,它提供了视图,其布局如下所示。但是如何使用 RemoteViews 将此 listAdapter 设置为小部件中的 ListView ?
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_
android:layout_
android:background="@android:color/background_light"
android:layout_margin="1sp"
android:padding="10sp"
>
<TextView
android:id="@+id/widgetInfo1"
android:layout_
android:layout_
android:text="@string/listItemDummy"
android:textColor="@android:color/black"
/>
<TextView
android:id="@+id/widgetInfo2"
android:layout_
android:layout_
android:text="@string/listItemDummy"
android:textColor="@android:color/black"
/>
</LinearLayout>
【问题讨论】:
你想要这个列表视图的列表适配器还是远程视图?你也试过什么? 我想将 ListView 添加到具有自定义视图项的小部件中。这是我的基本要求,所以我创建了一个 listAdapter 但似乎你不能使用普通的 listAdapter 并添加到小部件中的 ListView .. 以上布局是针对列表中的单个视图项... 【参考方案1】:对于RemoteViews
,您需要实现RemoteViewsFactory
,而不是常见的Adapter
。要返回自定义的RemoteView
(是的,每个项目都是RemoteView
,而不是View
),您需要覆盖其getViewAt(int position)
方法。
此外,对于RemoteView
s,您需要提供一个setAdapter()
而不是setAdapter()
,它将返回RemoteViewsFactory
之上的客户。
最后,向将要显示RemoteView
s 的客户端传递此服务的Intent
。
您需要在清单文件中声明的服务及其意图。这将使您的应用程序成为远程列表的提供者,例如其他应用程序或任何远程进程的视图。
【讨论】:
您是否建议类似:remoteViewsServiceIntent = new Intent( context , MyRemoteViewsService.class); @AmolKamble developer.android.com/guide/topics/appwidgets/… 如何将自定义数据(我的 API 项目列表)传递给这个适配器?以上是关于如何将自定义 ListAdapter 设置为 appwidget 中的列表视图?的主要内容,如果未能解决你的问题,请参考以下文章
如何以编程方式将自定义图像设置为 UIBarButtonItem
Swift:如何将自定义 UICollectionViewCell 设置为圆形?