-1

Почему мы используем что-то подобное для заполнения данных recyclerview? Разве мы не можем просто создать простой массив строк, например String [] заголовков и отображать их, как в ListView?Адаптер RecyclerView: OnBindViewHolder

List< Information> data 

public void onBindViewHolder(MyViewHolder holder, int position) { 
    Information current = data.get(position); 
    holder.title.setText(current.title); 
    holder.icon.setImageResource(current.iconId); 
} 

Я недавно смотрел видео о том, как работать с recyclerview, и я не могу понять, почему мы должны создать еще один класс информации, а затем снова создать свой массив внутри onBindViewHolder для отображения данных.

Может кто-нибудь помочь мне понять этот код?

+0

Что вы имеете в виду? Вы можете использовать 'List <>' и'ArrayList <> 'просто отлично в' ListView'. На самом деле это было бы предпочтительнее для негибкого массива. – KickingLettuce

ответ

2

Если вы взгляните на this example на google, они использовали набор данных массива для заполнения данных в RecyclerView. Взгляните на документы Google:

Вызывается RecyclerView для отображения данных в указанной позиции. Этот метод должен обновлять содержимое itemView, чтобы отразить элемент в данной позиции.

Обратите внимание: в отличие от ListView, RecyclerView не будет вызывать этот метод еще раз, если позиция элемента изменяется в наборе данных, если сам элемент не признан недействительным или не может быть определена новая позиция. По этой причине вы должны использовать только параметр позиции при получении связанного элемента данных внутри этого метода и не должны копировать его. Если вам понадобится позиция элемента позже (например, в прослушивателе кликов), используйте getAdapterPosition(), у которого будет обновленная позиция адаптера. Вместо этого переопределите onBindViewHolder (ViewHolder, int, List), если Adapter может обрабатывать эффективное частичное связывание.

0
String [] title ; 
int [] imageID; 
onBindViewHolder(MyViewHolder holder, int position) { 
Information current = data.get(position); 
holder.title.setText(title [position]); holder.icon.setImageResource(imageID  [position]); 
} 
+1

Могу ли я попросить вас добавить еще какой-нибудь контекст вокруг вашего ответа. Кодовые ответы трудно понять. Это поможет читателю и будущим читателям, если вы сможете добавить дополнительную информацию в свой пост. – RBT

+0

Вспомнит следующий раз –

 Смежные вопросы

  • Нет связанных вопросов^_^