Подтвердить что ты не робот

Как сделать верхний или нижний колонтитул ListView недоступным для просмотра

Я добавляю нижний колонтитул и заголовок в ListView с помощью методов setHeaderView() и setFooterView() и ViewInflater. Это работает неплохо.

Но как я могу предотвратить просмотр заголовка или нижнего колонтитула onListItemClick событий? Конечно, я могу поймать событие и проверить, получилось ли это из верхнего или нижнего колонтитула, но это только решает одну часть проблемы, поскольку верхний и нижний колонтитулы все еще сфокусированы при нажатии.

4b9b3361

Ответ 1

Просто используйте ListView # addHeaderView (View v, Object data, boolean isSelectable); и соответствующий метод addFooter().


Цель параметра Object data.

Исходный код ListView описывает параметр data как:

Данные, поддерживающие представление. Это возвращается из ListAdapter # getItem (int).

Это означает, что если я использую listView.getAdapter().getItem(0);, он вернет объект data из нашего заголовка.


Я расскажу об этом с помощью примера:

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);

Затем добавьте заголовок и установите адаптер:

listView.addHeaderView(view, "Potato", false);
listView.setAdapter(adapter);

Позже, если мы спросим:

Log.v("ListAdapter", listView.getAdapter().getItem(0));  // output: "Potato" 
Log.v("ArrayAdapter", adapter.getItem(0));               // output: "one"