首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >BaseAdapter的问题

BaseAdapter的问题
EN

Stack Overflow用户
提问于 2010-11-23 13:05:20
回答 1查看 935关注 0票数 1

嗨,我已经扩展了BaseAdapter,我的列表大小是20,但它只显示了7条记录,在第7条记录之后,它又从0开始显示。

公共类ContactsAdapter扩展了BaseAdapter {私有列表元素;私有上下文c;

代码语言:javascript
复制
public ContactsAdapter(Context c, List<ContactBean> Tweets) {
    this.elements = Tweets;
    this.c = c; }

public int getCount() {
    return elements.size(); }

public Object getItem(int position) {
    System.out.println(":: ::"+position);
    System.out.println("Printing Postions ::"+elements.get(position));
    return elements.get(position);  }

public long getItemId(int id) {
    return id;  }

public void Remove(int id) {        notifyDataSetChanged(); }

public View getView(int position, View convertView, ViewGroup parent) {

    LinearLayout rowLayout;
    ContactBean t = elements.get(position);

    if (convertView == null) {
        rowLayout = (LinearLayout) LayoutInflater.from(c).inflate(
                R.layout.list_view, parent, false);
        TextView tv_name = (TextView) rowLayout.findViewById(R.id.txt_contacts_name);
        tv_name.setText(t.getFirstName());
    } else {
        rowLayout = (LinearLayout) convertView;
    }
    return rowLayout;
}

}

请帮帮忙

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-11-23 13:09:51

视图被重用,因此您应该将tv_name.setText(t.getFirstName());放在if-else块之后:

代码语言:javascript
复制
if (convertView == null) {
    rowLayout = (LinearLayout) LayoutInflater.from(c).inflate(R.layout.list_view, parent, false);
} else {
    rowLayout = (LinearLayout) convertView;
}

TextView tv_name = (TextView) rowLayout.findViewById(R.id.txt_contacts_name);
tv_name.setText(t.getFirstName());
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4252956

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档