3

我有一个列表视图。我需要为每个列表项创建一个自定义视图,因此我创建了一个自定义 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_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>
4

1 回答 1

4

而不是常见的Adapter,因为RemoteViews你需要执行RemoteViewsFactory。要返回自定义RemoteView的(是的,RemoteView对于每个项目而不是View),您将需要覆盖其getViewAt(int position)方法。

此外,一个只是不setAdapter()用于RemoteViews,您需要提供一个RemoteViewsService将返回RemoteViewsFactory给其客户的上面。

最后,向将要显示RemoteViews 的客户端传递Intent此服务的一个。

The Service and its Intent you will need to declare in your manifest file. This will make your App a provider of remote List like views to other apps or any remote process.

于 2013-02-09T06:11:29.783 回答