ListView的setOnItemClickListener位置错乱问题

如果你对一个ListView同时addHeaderView(listhHeaderView),也就是头部视图,再加setAdapter,当你加上setOnItemClickListener事件后你会发现setAdapter所对应的位置(position)和setOnItemClickListener所对应的位置不一样,实际上是因为setOnItemClickListener算addHeaderView的为第一个item,而adapter不算,所以setOnItemClickListener所点击的是下一个的Item,解决方法是setOnItemClickListener里面那个position参数-1,示例代码:

messageListView.setOnItemClickListener(new OnItemClickListener() {

    @Override
    public void onItemClick(AdapterView<?> parent, View v, int position,
            long id) {
        // TODO Auto-generated method stub
        position = position - 1;
        
        doSomething();
        
    }
});

这应该算是缺陷。

posted @ 2013-10-26 23:00  朝野布告  阅读(635)  评论(0)    收藏  举报