android – BaseAdapter导致ListView在滚动时出错

android – BaseAdapter导致ListView在滚动时出错,第1张

概述我从一本书改编的一些BaseAdapter代码中遇到问题.我一直在应用程序中使用这些代码的变体,但是只有在滚动长列表时才意识到,ListView中的项目变得混乱,并不是所有的元素都显示出来. 很难描述确切的行为,但是很容易看出你是否选择了50个项目的排序列表,并开始向上和向下滚动. class ContactAdapter extends BaseAdapter { ArrayList< 我从一本书改编的一些BaseAdapter代码中遇到问题.我一直在应用程序中使用这些代码的变体,但是只有在滚动长列表时才意识到,ListVIEw中的项目变得混乱,并不是所有的元素都显示出来.

很难描述确切的行为,但是很容易看出你是否选择了50个项目的排序列表,并开始向上和向下滚动.

class ContactAdapter extends BaseAdapter {    ArrayList<Contact> mContacts;    public ContactAdapter(ArrayList<Contact> contacts) {        mContacts = contacts;    }    @OverrIDe    public int getCount() {        return mContacts.size();    }    @OverrIDe    public Object getItem(int position) {        return mContacts.get(position);    }    @OverrIDe    public long getItemID(int position) {        return position;    }    @OverrIDe    public VIEw getVIEw(int position,VIEw convertVIEw,VIEwGroup parent) {        VIEw vIEw;        if(convertVIEw == null){            LayoutInflater li = getLayoutInflater();            vIEw = li.inflate(R.layout.groups_item,null);            TextVIEw label = (TextVIEw)vIEw.findVIEwByID(R.ID.groups_item_Title);            label.setText(mContacts.get(position).getname());            label = (TextVIEw)vIEw.findVIEwByID(R.ID.groups_item_subTitle);            label.setText(mContacts.get(position).getNumber());        }        else        {            vIEw = convertVIEw;        }        return vIEw;    }}
解决方法 当您首次创建TextVIEw小部件时,您只会将数据放入.你需要移动这四行:
TextVIEw label = (TextVIEw)vIEw.findVIEwByID(R.ID.groups_item_Title);        label.setText(mContacts.get(position).getname());        label = (TextVIEw)vIEw.findVIEwByID(R.ID.groups_item_subTitle);        label.setText(mContacts.get(position).getNumber());

在if / else块之后和方法返回之前,所以您可以更新TextVIEw小部件,无论是回收该行还是创建新的行.

总结

以上是内存溢出为你收集整理的android – BaseAdapter导致ListView在滚动时出错全部内容,希望文章能够帮你解决android – BaseAdapter导致ListView在滚动时出错所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1130908.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存