安卓 Activity中获得ListView子View中控件

编辑:admin 发布时间:2020-04-13 浏览:

  关于安卓中的ListView控件,置信大年夜家都是又恨又爱。爱的是ListView展现数据极其美不美观便利,却又恨它的难以操控。我在比来的项目开辟中,就碰到了让人头疼的后果——在Activity中获得ListView子View中控件。

  尽人皆知,ListView是多项View的集合,ListView的每项都是一个独自的View,只需获得到这个View,就可以经过View.findViewById(int id)方法获得到对应控件,ListView自身为我们供给了一个方法getChildAt(int index)用于获得指定位置的子View。但在实践应用中,我们却会发明这个方法获得到的结果是NULL

  我设置断点剖析了一下启事,终究发明启事是初始化自定义BaseAdapter并绑定到ListView是一个异步的过程,也就是说当主线程运转到“

  ”这一句时,ListView子View还没有生成,天然获得到的结果为NULL。找到后果地点,下面我就来引见处理这个后果的方法。

  因为ListView的子View是在BaseAdapter的getView(int position, View arg1, ViewGroup arg2)方法中生成,所以当子View加载到最后一项时,getView(int position, View arg1, ViewGroup arg2)中position位置为传入List数据行数-1,我们可以在此处设置监听(不会自定义监听的冤家可以自己去百度若何自定义监听,Activity中监听到控件加载完成,履行监听的的代码 获得子View集合

  因为BaseAdapter中getView()方法会被屡次调用,而我们只需求获得到一次不为NULL的子view集合,所以只需定义一个标示,获得子View时辨别可否为NULL,便可以处理后果。

  最后祝大年夜家中秋快乐!

顶一下
(0)
0%
踩一下
(0)
0%
如果你喜欢本页,请不要忘记收藏哦

opyright © 365bet 版权所有