-1

次のように、カスタム アダプターを使用したリスト フラグメントがあります。

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    CustomArrayAdapter adapt = new CustomArrayAdapter(getActivity(), DummyContent.ITEMS);
    setListAdapter(adapt);
}

問題は、リストにアイテムがない場合にビューを設定したいということです。どうすればそれができますか?私の Java クラスは ListFragment を拡張しています。ありがとうございました!

4

2 に答える 2

1

ListFragment でカスタム レイアウトを使用している場合は、この ID を使用して xml ファイル内にビューを作成するだけです(ドキュメントから取得したレイアウト)

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
         android:orientation="vertical"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
         android:paddingLeft="8dp"
         android:paddingRight="8dp">

     <ListView android:id="@id/android:list"
               android:layout_width="match_parent"
               android:layout_height="match_parent"
               android:background="#00FF00"
               android:layout_weight="1"
               android:drawSelectorOnTop="false"/>

     <TextView android:id="@id/android:empty"
               android:layout_width="match_parent"
               android:layout_height="match_parent"
               android:background="#FF0000"
               android:text="No data"/>
 </LinearLayout>

ListFragmentには、リストビューが空のときにテキストを表示するsetEmptyTextというヘルパー メソッドもあります。

于 2015-02-11T18:42:33.207 に答える
0

私はついに別の方法で問題を解決しました。クラス「EsameListActivity」で:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    // If there are items in the list
    if(DummyContent.ITEMS.size() != 0)
        // Show the lsit
        setContentView(R.layout.activity_esame_list); 
    else
        // Show a view with a message error
        setContentView(R.layout.activity_empty_list);
 }

だから私の問題を解決します!

于 2015-02-12T11:52:53.370 に答える