关于 PullToRefreshListView使用时下标越界的问题

Adnroid开发者 2016-08-20 05:42:33
假如我有10条数据,使用ListView装载数据 我选择到最后一条点击后查看详情 一切正常
但是 使用PullToRefreshListView后 再 点击最后一条时 会报数组下标越界,输出的下标是 10。
大家都知道下标冲0开始 如果我减去1是可以 那么如果是只有一条数据时怎么办?加个判断?虽然可以解决 但是我觉得这个办法很有问题,不知道有哪位又遇到过同样的问题 能给予点思路[/i]
谢谢大家的关注
...全文
265 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Adnroid开发者 2016-09-28
  • 打赏
  • 举报
回复
谢谢大家 我在处理的时候减了一 就可以了第一次用为理解,看了下log 就清楚了
香辣小龙人 2016-08-30
  • 打赏
  • 举报
回复
楼上正解,PullToRefreshListView在ListView的基础上增加了个HeadView,所以在OnItemClickListener里面取position需要+1
以一贯之 2016-08-30
  • 打赏
  • 举报
回复
PtrFramelayout可能现在更适合
碼农李泽斌 2016-08-30
  • 打赏
  • 举报
回复
引用 2 楼 lizebin_bin 的回复:
PullToRefreshListView是继承子ListView的,ListView有一个机制,添加一个headview或者footView都会使得item的数目加一,所以你需要在onItemClick中position减一。 比如你size为10,添加一个headView后,size就是11了,你点击最后一个的position就是10而不是9,这样理解了吗
忘记说了,PullToRefreshListView的下拉刷新就是添加了一个headView,所以size会加一
碼农李泽斌 2016-08-30
  • 打赏
  • 举报
回复
PullToRefreshListView是继承子ListView的,ListView有一个机制,添加一个headview或者footView都会使得item的数目加一,所以你需要在onItemClick中position减一。 比如你size为10,添加一个headView后,size就是11了,你点击最后一个的position就是10而不是9,这样理解了吗
  • 打赏
  • 举报
回复
其实你打个log很容易就会发现了。 PullToRefreshListView 你看它的内部源码就会知道,你监听的条目点击事件position 需要做减1处理才能和你的条目索引匹配

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧