I'm setting a TextView
with the id @android:id/empty
to display a message when there are no items in the ListView
. However, this TextView
gets displayed even if there are items in the ListView
, right before the items show up.
How can I make it such that it only gets displayed when there are no elements in the ListView
?
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<ListView
android:id="@android:id/list"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:dividerHeight="1dp" >
</ListView>
<TextView
android:id="@android:id/empty"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/empty_list" />
</LinearLayout>
PS: I'm using a Loader
and a SimpleCursorAdapter
with a ListFragment
.
I'm guessing you are using a regular Fragment
or Activity
with a ListView
inside of it. If you are, you must add the empty layout to the ListView
manually.
E.g.
ListView lv = (ListView)findViewById(android.R.id.list);
TextView emptyText = (TextView)findViewById(android.R.id.empty);
lv.setEmptyView(emptyText);
Then your ListView
will automatically use this view when its adapter is empty
If you are using a ListActivity
you do not need to call setEmptyView()
on the ListView
since the ListActivity
automatically manages that for you.