Возможно, есть тысячи сообщений по всему миру о процессе перебора ListView и ListAdapter, но до сих пор я не мог решить свою проблему.Android ListView «recycle» не хранит строки, которые не видны изначально
У меня есть собственные строки ListView и заполняются элементы внутри строк (TextViews, ImageViews и т. Д.) С данными, которые я получаю с удаленного сервера. На экране может отображаться максимум 5 строк за раз, и мне нужно прокручивать, если у меня больше строк. Проблема в; адаптер сохраняет и перерабатывает только первые 5 строк информации, и даже если я прокручиваю, чтобы увидеть 6-е, 7-е, 8-е и т. д. строки, я снова и снова вижу те же 5 строк в случайных позициях.
Вот код:
public class ListAdapter extends BaseAdapter {
private ArrayList<String> id, name, address;
private Context context;
public ListAdapter(Context c, ArrayList<String> id,
ArrayList<String> name, ArrayList<String> address,) {
this.id = id;
this.name = name;
this.address = address;
this.context = c;
}
@Override
public int getCount() {
return id.size();
}
@Override
public Object getItem(int position) {
return id.get(position);
}
@Override
public long getItemId(int id) {
return id;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
View rowsLayout;
if (convertView == null) {
rowsLayout = (View)LayoutInflater.from(context)
.inflate(R.layout.list_item, null);
//Assign values to TextViews in here
} else {
rowsLayout = convertView;
}
return rowsLayout;
}
}
Я попытался с помощью метода в this website, но это не помогло.
Если кто-нибудь может предложить мне решение (с кодом пожалуйста) или направить меня на другой пост, я буду благодарен.
см. Http://stackoverflow.com/questions/16515077/widget-in-listview-disappears-when-listview-scrolls-down/16515327#16515327 –