假设本人有10条数据,使用ListView装载数据 本人选择到最后一条点击后查看详情 一切正常
但是 使用PullToRefreshListView后 再 点击最后一条时 会报数组下标越界,输出的下标是 10。
大家都知道下标冲0开始 假如本人减去1是可以 那么假如是只有一条数据时怎么办?加个判断?虽然可以解决 但是本人觉得这个办法很有问题,不知道有哪位又遇到过同样的问题 能给予点思路[/i]
谢谢大家的关注
但是 使用PullToRefreshListView后 再 点击最后一条时 会报数组下标越界,输出的下标是 10。
大家都知道下标冲0开始 假如本人减去1是可以 那么假如是只有一条数据时怎么办?加个判断?虽然可以解决 但是本人觉得这个办法很有问题,不知道有哪位又遇到过同样的问题 能给予点思路[/i]
谢谢大家的关注
解决方案
10
其实你打个log很容易就会发现了。 PullToRefreshListView 你看它的内部源码就会知道,你监听的条目点击事件position 需要做减1处理才能和你的条目索引匹配
10
PullToRefreshListView是继承子ListView的,ListView有一个机制,添加一个headview或footView都会使得item的数目加一,所以你需要在onItemClick中position减一。
例如你size为10,添加一个headView后,size就是11了,你点击最后一个的position就是10而不是9,这样理解了吗
例如你size为10,添加一个headView后,size就是11了,你点击最后一个的position就是10而不是9,这样理解了吗
6
忘记说了,PullToRefreshListView的下拉刷新就是添加了一个headView,所以size会加一
2
PtrFramelayout可能现在更适合
2
楼上正解,PullToRefreshListView在ListView的基础上增加了个HeadView,所以在OnItemClickListener里面取position需要+1