Проблема с BaseAdapter - PullRequest
       15

Проблема с BaseAdapter

1 голос
/ 23 ноября 2010

Привет, я расширил BaseAdapter, мой размер списка - 20, но он показывает только 7 записей, после 7-й записи он снова отображается с 0.

открытый класс ContactsAdapter расширяет BaseAdapter {privateЭлементы списка;приватный контекст c;

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;
}

}

Пожалуйста, помогите

1 Ответ

1 голос
/ 23 ноября 2010

Представления используются повторно, поэтому вы должны поставить tv_name.setText(t.getFirstName()); после блока if-else:

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());
...