Android中GridView、ListView 的 getChildAt() 方法返回null 解决方案
2017-07-21 10:25
369 查看
最近测试出了一个bug,就是listView里面加载第一页数据时在listView的click事件中获取list中Item的某个子控件时无异常,但是如果一旦进行滑动到下页显示的item复用第一页的item时再获取获取list中Item的某个子控件时出现空指针异常,可以看我打断点调试的数据
position为0获取没有异常
position为6复用了第一页的view
这个问题以前没怎么注意,经过反复调试发现lv.getChildAt(position)方法中的position有诡异所以毫不犹疑就去看了对应的源码,不看不知道,一看吓一跳
也就是说getChildAt(int position)方法中的position指的是当前可见的第几个元素,并不是在listview中的position位置,既然知道了问题那解决也就有方案了,如果要获取当前可见的第几个元素,那么拿到当前的位置减去第一个可见的view的位置不就行了吗?
于是把原来的position改一下:
再次进行断点调试:
同样是position为6,更改position后获取到的view就是非空了,以后再使用相关方法的时候最好看看相关参数的说明,稍微理解有偏差,就会有问题,以后要多注意
position为0获取没有异常
position为6复用了第一页的view
这个问题以前没怎么注意,经过反复调试发现lv.getChildAt(position)方法中的position有诡异所以毫不犹疑就去看了对应的源码,不看不知道,一看吓一跳
也就是说getChildAt(int position)方法中的position指的是当前可见的第几个元素,并不是在listview中的position位置,既然知道了问题那解决也就有方案了,如果要获取当前可见的第几个元素,那么拿到当前的位置减去第一个可见的view的位置不就行了吗?
于是把原来的position改一下:
TextView order = (TextView) lv.getChildAt(position).findViewById(R.id.order_number);
再次进行断点调试:
同样是position为6,更改position后获取到的view就是非空了,以后再使用相关方法的时候最好看看相关参数的说明,稍微理解有偏差,就会有问题,以后要多注意
相关文章推荐
- 解决Android中GridView、ListView的getChildAt方法返回null的问题
- Android中GridView、ListView的getChildAt方法返回null
- Android中GridView、ListView的getChildAt方法返回null
- 【转】Android中GridView、ListView的getChildAt方法返回null
- Android中ListView和GridView通过getChildAt方法得到相应的Item并刷新
- android getActivity.findViewById获取ListView 返回NULL的方法
- Android 中Listview方法getChildAt()返回为空的问题
- Android ScrollView与ListView,GridView共存冲突解决方案
- Android--GridView/ListView 点击Item修改Item背景 标识是当前选择项方法:
- Android ScrollView与ListView,GridView共存冲突解决方案
- Android中自定义ListView无法响应OnItemClickListener中的onItemClick方法问题解决方案<转>
- android中ListView中嵌套GridView并且把GridView当中的内容全部显示出来的方法
- Android listview&gridview getview 方法多次调用问题解决方法
- 关于在Android中如何点击GridView或者ListView中item子项达到修改子项背景的问题解决方案
- Android中自定义ListView无法响应OnItemClickListener中的onItemClick方法问题解决方案
- 引用 commons.net包中的FTPClient.listFiles()方法返回null的问题及其解决方案(转)
- Android中自定义ListView无法响应OnItemClickListener中的onItemClick方法问题解决方案
- 关于Listview的getChildAt方法返回空值的解决办法
- Android中自定义ListView无法响应OnItemClickListener中的onItemClick方法问题解决方案
- Android listview&gridview getview 方法多次调用问题解决方法