Junior — Middle
What is the role of an adapter in a RecyclerView component and what tasks does it solve?
sobes.tech AI
Answer from AI
The adapter in RecyclerView is responsible for creating and binding ViewHolders with data. It transforms a dataset into visual list elements, manages the creation of new items during scrolling, and reuses existing ones to optimize performance. The main tasks of the adapter:
- Creating new ViewHolders as needed
- Binding data to ViewHolders
- Determining the number of items in the list
Example of a simple adapter:
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> {
private List<String> data;
public MyAdapter(List<String> data) {
this.data = data;
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext())
.inflate(android.R.layout.simple_list_item_1, parent, false);
return new ViewHolder(view);
}
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
holder.textView.setText(data.get(position));
}
@Override
public int getItemCount() {
return data.size();
}
static class ViewHolder extends RecyclerView.ViewHolder {
TextView textView;
ViewHolder(View itemView) {
super(itemView);
textView = itemView.findViewById(android.R.id.text1);
}
}
}