今天忽然发现ListView的OnItemClickListener监听事件中的position返回是从1开始的,一直以为很奇怪,在群里问了后,多是headerView的问题,特地去查了一番,原来是如此:java
特此记过!ide
1
2
3
|
LayoutInflater lif = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View headerView = lif.inflate(R.layout.header,
null
);
mListView.addHeaderView(headerView);
|
1
|
lif.inflate(R.layout.header, mListView,
false
);
|
1
|
void
onItemClick(AdapterView<?> parent, View view,
int
position,
long
id)
|
1
2
3
4
5
6
7
8
|
final
headerCount =
1
;
mListView.setOnItemClickListener(
new
OnItemClickListener() {
@Override
public
void
onItemClick(AdapterView<?> parent, View view,
int
position,
long
id) {
Item item = myAdapter.getItem(position - headerCount);
}
});
|
1
2
3
4
5
6
7
|
mListView.setOnItemClickListener(
new
OnItemClickListener() {
@Override
public
void
onItemClick(AdapterView<?> parent, View view,
int
position,
long
id) {
Item item = parent.getAdapter().getItem(position);
}
});
|
1
|
View inflate(
int
resource, ViewGroup root,
boolean
attachToRoot)
|
1
2
3
|
View view = mLayoutInflater.inflate(R.layout.header,
new
ListView(mContext),
false
);
View view = mLayoutInflater.inflate(R.layout.header,
new
LinearLayout(mContext),
false
);
View view = mLayoutInflater.inflate(R.layout.header,
new
RelativeLayout(mContext),
false
);
|