-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 中使用自定义布局,那么您可以在 xml 文件中使用此 ID 创建一个视图(布局取自文档)

 <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 回答