网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

关于android:listviewgetChildAt为空的解释

今天遇到了一个很奇怪的问题,我所设定的一个listview 有10个item,当我的 list.getCount 的数量对其进行for 循环的时候,当到第6个item的时候,得到的view对象却是null,这让我很费解,经过一番查询,明白了这个问题是怎么回事,与大家分享下:

创新互联建站主营保康网站建设的网络公司,主营网站建设方案,成都app开发,保康h5重庆小程序开发公司搭建,保康网站营销推广欢迎保康等地区企业咨询

   关于android:listview  getChildAt 为空的解释

如图片红框部分的listview部分。这其实涉及到android的listview控件的内存处理问题:当我们加载listview时,如果这个listview的数据量比较多,它是显示不完全的,但这时是否是所有的数据都已经加载?答案是否定的,listview加载的数量是当前屏幕展示的数量再多四个,分别是上下各自缓冲两个,这就是问题所在。当我listview有10个item,但我当前的布局最多显示4个,所以当去得到第七个的时候,会出现得到的item为空的现象。解决办法如下:

public class MeasureitemListener implements OnItemClickListener{

@Override

public void onItemClick(AdapterView arg0, View arg1, int arg2,

long arg3) {

firstlocation=arg2;

datalDialog= new LoadDialogDao(getActivity(),"数据加载中...");

datalDialog.show();

for(int i=0;i

int  firvisible=measure_type_list.getFirstVisiblePosition(); \\获得第一个可见item的index

            View v=measure_type_list.getChildAt(i-firvisible);

            if(v!=null){

            if (arg2 == i) {

                v.setBackgroundColor(R.color.lightblue);

            } else {

            v.setBackgroundResource(R.drawable.list_item_selector);

            }

            }

        }

}

};

解决思路就是加上如上红字部分,获得屏幕的第一个可见item的index,然后用当前的child的index减去这个值就可以得到当前的对象了。


网页题目:关于android:listviewgetChildAt为空的解释
网站路径:http://bjjierui.cn/article/gphgoc.html

其他资讯