I'm adding a footer and header view to a ListView
by using the methods setHeaderView()
and setFooterView()
and a ViewInflater
. That works quite well.
But how could I prevent the header or footer view from firing onListItemClick
events? Of course I can catch the event and check whether it came from a header or footer, but this only solves one part of the problem, as header and footer got still focused when clicked.
Android App Development for Beginners This example demonstrates How to add header item for Listview in Android. Step 1 − Create a new project in Android Studio, go to File ⇒ New Project and fill all required details to create a new project. Step 2 − Add the following code to res/layout/activity_main. xml.
Simply use the ListView#addHeaderView(View v, Object data, boolean isSelectable); and matching addFooter()
method.
The purpose of Object data
parameter.
The ListView source code describes the data
parameter as:
The data backing the view. This is returned from ListAdapter#getItem(int).
Which means if I use listView.getAdapter().getItem(0);
it will return the data
Object from our header.
I'll elaborate this with an example:
listView = (ListView) findViewById(R.id.list); String[] array = new String[] {"one", "two", "three"}; adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, array);
Next let's add a header and set the adapter:
listView.addHeaderView(view, "Potato", false); listView.setAdapter(adapter);
Later if we ask:
Log.v("ListAdapter", listView.getAdapter().getItem(0)); // output: "Potato" Log.v("ArrayAdapter", adapter.getItem(0)); // output: "one"
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With