Android中ListView数据显示错乱问题
@Override
public View getView(int position, View convertView, ViewGroup parent) {
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);
}
Person person = persons.get(position);
idview.setText(person.getId()+"");
nameview.setText(person.getName());
ageview.setText(person.getAge()+"");
return convertView;
}
我认为是ListView缓存机制的问题,但是我不是很清楚为什么会这样。请高人解答!谢谢!
--------------------编程问答-------------------- 楼主能贴一下所抛出的异常吗? --------------------编程问答--------------------
不是异常,而是ListView显示的顺序会变化,而且是乱序,比如正常应该显示:
0
1
2
3
4
5
但是现在是:
3
1
2
4
5
--------------------编程问答-------------------- convertView = inflater.inflate(resource, null);
不知道楼主这句中的inflater从哪冒出来的? --------------------编程问答--------------------
是前面设置为类的私有属性的,LayoutInflator inflator = LayoutInflater.from(Context) --------------------编程问答-------------------- 哥们你最后解决没有。。我也出现个奇怪我一点EditText弹出键盘 跟着listview里的数据就错乱了。每次点一下EditText后list都会跟着动一次,可以EditText根本没有添加任何事件 --------------------编程问答-------------------- 楼上一针见血,以后要注意细节喽!!
补充:Java , J2ME