如何使ListView的页眉或页脚不可点击

时间:2012-09-18 16:02:06

标签: android listview android-listview

我正在使用方法ListViewsetHeaderView()以及setFooterView()ViewInflater添加页脚和标题视图。这非常有效。

但是如何阻止页眉或页脚视图触发onListItemClick个事件呢?当然,我可以捕获事件并检查它是否来自页眉或页脚,但这只解决了问题的一部分,因为页眉和页脚在单击时仍然聚焦。

1 个答案:

答案 0 :(得分:65)

只需使用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"