1

カスタム SimpleCursorAdapter を使用しています。現在、データベース/カーソルにエントリが見つからない場合、リストは空のままです。カーソル/データベース内にエントリがない場合、リスト内にメッセージを表示したいと思います。このイベントを処理するにはどうすればよいですか?

4

2 に答える 2

6

表示したいビューを XML に配置し、任意の ID を指定します。たとえば、次のようになります。

    <ListView
        android:id="@+id/myList"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>

    <!-- view to be shown/hidden on empty list above -->
    <TextView
        android:id="@+id/emptyListElem"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"            
        android:gravity="center"
        android:text="Nothing to show!" />

次に、Activity のonCreate()メソッドで、 listView オブジェクトに対してsetEmptyView()を呼び出します。ListView は、リストが空かどうかに応じて、ビュー オブジェクトの表示/非表示を処理する必要があります。

    View empty = findViewById(R.id.emptyListElem);      
    listView.setEmptyView(empty);
于 2012-02-15T16:19:29.680 に答える
3

ListView が xml で表現されている場合は、次のように、リストが空の場合にメッセージを自動的に表示する特定の android:id を持つ TextView を追加できます。

<ListView android:id="@id/android:list"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:background="@color/white" />

        <TextView android:id="@id/android:empty"
           android:layout_width="fill_parent"
           android:layout_height="fill_parent"
           android:background="@color/white"
           android:text="No Data exist"
           android:textSize="16dip"
           android:textColor="@color/black"
           android:layout_gravity="center_horizontal"
           android:gravity="center_horizontal"/>

これを機能させるには、 @id/android:empty を使用する必要があります。

于 2011-01-30T23:29:46.477 に答える