2013-02-09 36 views
2

我有一个listView。我需要每个列表项目的自定义视图,所以我创建了一个自定义的ListAdapter,它给出了视图,下面给出了布局。但是,如何使用RemoteViews将此ListAdapter设置到小部件中的ListView?如何设置自定义ListAdapter在appwidget中列出视图?

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:background="@android:color/background_light" 
    android:layout_margin="1sp" 
    android:padding="10sp" 
    > 

    <TextView 
     android:id="@+id/widgetInfo1" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:text="@string/listItemDummy" 
     android:textColor="@android:color/black" 
     /> 

    <TextView 
     android:id="@+id/widgetInfo2" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:text="@string/listItemDummy" 
     android:textColor="@android:color/black" 
     /> 

</LinearLayout> 
+0

你想要一个列表适配器为这个列表视图或你想要一个远程视图?你还试过了什么? – lokoko 2013-02-09 06:06:27

+0

我想将ListView添加到具有自定义视图项目的窗口小部件。这是我的基本要求,所以我创建了一个listAdapter,但它似乎不能使用正常的listAdapter并将其添加到ListView中的小部件中。以上布局适用于列表中的单个视图项目... – Amol 2013-02-09 07:09:32

回答

2

取而代之的常见的Adapter,为RemoteViews需要实现RemoteViewsFactory。要返回自定义RemoteView(是的,RemoteView为每个项目而不是View),您将需要覆盖其getViewAt(int position)方法。

而且,一个少了点setAdapter()RemoteView S,你就需要提供一个RemoteViewsService将返回上述RemoteViewsFactory向它的客户。

最后,对于要显示RemoteView的客户端,您将通过此服务的Intent

服务及其意图,您将需要在清单文件中声明。这将使您的应用程序成为远程列表的提供者,如其他应用程序或任何远程进程的视图。

+0

您是否建议如下所示: remoteViewsServiceIntent \t \t \t \t \t =新意图( \t \t \t \t \t \t \t上下文 \t \t \t \t \t \t \t,MyRemoteViewsService.class); – Amol 2013-02-09 13:32:31

+0

@AmolKamble http://developer.android.com/guide/topics/appwidgets/index.html#collections – 2013-02-09 15:07:11

相关问题