部分代码:
<span style="font-size:18px;"> View header = LayoutInflater.from(this).inflate(
android.R.layout.simple_list_item_1, listview, false);
TextView txt = (TextView) header.findViewById(android.R.id.text1);
txt.setText("header");
listview.addHeaderView(header);
adapter = new SchoolBarAdapter(this, data);
listview.setAdapter(adapter);
listview.setOnItemClickListener(this);
}
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
String user = (String) adapter
.getItem((position < 0) ? 0 : (position));
SuperToastUtils.showShort(this, user);
}</span>
假设:adapter里面的数据个数为5;
这里listview.addHeaderView(header);调用之后,对onItemClick()方法中的position有了影响。
没有addHeaderView之前,position的范围是0~4。
调用了addHeaderView之后,position的范围是0~5。
所以这里如果想点击listview某item,正确的返回对应的值的话,adapter.getItem(postion-1)才能正确;
否则很容易出现问题。