public View getView(int index, View view, ViewGroup parent){
if (view == null) { // for the first time, inflate the view
LayoutInflater inflater =
LayoutInflater.from(parent.getContext());
view = inflater.inflate(
R.layout.time_list_item, parent, false);
}
/**
* The layout under consideration has two TextViews in it
* one to display the time and other to display some text.
*/
TimeRecord time = times.get(index);
timeTextView.setText(time.getTime());
TextView timeTextView = (TextView)
view.findViewById(R.id.time_view);
notesTextView.setText(time.getNotes());
TextView notesTextView = (TextView)
view.findViewById(R.id.notes_view);
return view;
}
Я знаю, что getView()
вызывается многократно для каждого элемента коллекции, который должен отображаться. Ссылка, которую я использую, говорит, что для оптимизации производительности вам следует просто повторно использовать представление. Теперь это «повторное использование» меня сбивает с толку.Как работает getView() в пользовательском адаптере?
Эти возвращенные виды будут отображаться в ListView
. Если я когда-либо верну только один View
, который я заново заполняю новыми данными, как данные будут правильно отображаться? Как может быть несколько записей?
Другими словами, я не просто возвращаю один вид и ожидаю увидеть несколько записей ListView
? Разве это не значит, что я возвращаю новый Views
?
http://android.amberfog.com/?p=296 –