在android中显示空列表的替代

时间:2012-01-09 14:34:42

标签: android android-layout android-listview

我希望能够显示空列表的替代方法,目前以下方法调用会设置列表,但是如果对数据库的调用返回了空列表,则 taskArrayList 可能为空

/**
 * Setup list adapter.
 */
private void setupListAdapter() {
setListAdapter(new TaskAdapter(this, R.id.tasks_list_view,
    taskArrayList));

taskListView = getListView();
taskListView.setOnItemClickListener(new TaskClickListener());
}

我想在我调用此方法之前,或者在方法的开头添加以下检查

if(taskArrayList.isEmpty()) {
    /*load an alternative view*/
}

但是因为我的Activity是ListActivity所以它需要针对它设置ListView,所以当列表为空时,我不确定处理这种情况的最佳方法。

我不想创建一个“虚拟项目”,它表示没有项目并将其添加到ArrayList中,但我不确定其他选择。

1 个答案:

答案 0 :(得分:3)

如果你添加了@android:id / empty

的想法

当它自动为空时,它将显示而不是列表!

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

在文档中他们这样说:

或者,您的自定义视图可以包含列表视图为空时要显示的任何类型的另一个视图对象。这个“空列表”通知符必须有一个id“android:id / empty”。请注意,当存在空视图时,如果没有要显示的数据,将隐藏列表视图。

http://developer.android.com/reference/android/app/ListActivity.html