I have a problem with the setEmptyView method from a ListView.
Here is my Java code:
ListView view = (ListView)findViewById(R.id.listView1);
view.se
After trying all of the solutions presented here and experimenting, I believe the code below is the best method to use when your ListView and empty View are not side-by-side in a layout with the automatic ids set.
ViewGroup parentGroup = (ViewGroup)getListView().getParent();
View empty = getActivity().getLayoutInflater().inflate(R.layout.list_empty_view,
parentGroup,
false);
parentGroup.addView(empty);
getListView().setEmptyView(empty);
Reasoning:
Create a layout in XML that specifies both the ListView
and the empty view you want to use. If you give them IDs of @android:id/list
and @android:id/empty
, android will automatically use the view with id:empty
when list is empty.
the problem is, i have to do a addContentView:
View empty = getLayoutInflater().inflate(R.layout.empty_list_item, null, false);
addContentView(empty, new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
view.setEmptyView(empty);
now its fine
For me, none of this answers worked for me. What I had to do was add the empty view manually (inflated) to the "parent" view of the Listview:
ListView my_list = (ListView) findViewById(R.id.my_list);
View emptyView = getLayoutInflater().inflate(R.layout.empty_view,null);
((ViewGroup)my_list.getParent()).addView(emptyView);
listView.setEmptyView(emptyView);
My problem was, that I added a footer view which seems not working with the empty view. After removing the footer view the empty view is displayed.
Your TextView should be placed right under the ListView item with its visibility set to gone (android:visibility="gone"), do not place it in another layout. This is how your main layout would look like
<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="@+id/listViewFangbuch"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
</ListView>
<TextView
android:id="@+id/empty_list_item"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:visibility="gone"
android:text="@string/emptyList" >
</TextView>
</LinearLayout>
And this is how your code might look like
ListView view = (ListView)findViewById(R.id.listViewFangbuch);
view.setEmptyView(findViewById(R.id.empty_list_item));
ArrayAdapter<Session> adapter1 = new ArrayAdapter<Session>(this, android.R.layout.simple_list_item_1,
android.R.id.text1, MainController.getInstanz().getItems());
view.setAdapter(adapter1);