问题描述
@OverridepublicViewgetView(intposition,ViewconvertView,ViewGroupparent){if(convertView==null){convertView=inflater.inflate(resource,null);//*****************我认为是这句话的问题*****************//如果改成LayoutInflater.from(context).inflate(resource,null);就是对的,为什么?idview=(TextView)convertView.findViewById(R.id.id);nameview=(TextView)convertView.findViewById(R.id.name);ageview=(TextView)convertView.findViewById(R.id.age);}Personperson=persons.get(position);idview.setText(person.getId()+"");nameview.setText(person.getName());ageview.setText(person.getAge()+"");returnconvertView;}
我认为是ListView缓存机制的问题,但是我不是很清楚为什么会这样。请高人解答!谢谢!
解决方案
解决方案二:
楼主能贴一下所抛出的异常吗?
解决方案三:
引用1楼的回复:
楼主能贴一下所抛出的异常吗?
不是异常,而是ListView显示的顺序会变化,而且是乱序,比如正常应该显示:012345但是现在是:31245
解决方案四:
convertView=inflater.inflate(resource,null);不知道楼主这句中的inflater从哪冒出来的?
解决方案五:
引用3楼的回复:
convertView=inflater.inflate(resource,null);不知道楼主这句中的inflater从哪冒出来的?
是前面设置为类的私有属性的,LayoutInflatorinflator=LayoutInflater.from(Context)
解决方案六:
哥们你最后解决没有。。我也出现个奇怪我一点EditText弹出键盘跟着listview里的数据就错乱了。每次点一下EditText后list都会跟着动一次,可以EditText根本没有添加任何事件
解决方案七:
楼上一针见血,以后要注意细节喽!!
解决方案八:
的确是ListView缓存的问题,可以参考下面的文章。http://www.cnblogs.com/xiaoQLu/archive/2012/06/18/2553757.html
解决方案九:
继续深入研究一下。