How to Use RecyclerView in Android: Simple Guide
To use
RecyclerView in Android, add it to your layout, create an Adapter to bind data, and set a LayoutManager to control item layout. The Adapter creates and binds view holders for efficient scrolling of large data sets.Syntax
The basic steps to use RecyclerView are:
- Add
RecyclerViewwidget in your XML layout. - Create an
Adapterclass that extendsRecyclerView.Adapterand defines aViewHolder. - Set a
LayoutManageron theRecyclerViewto arrange items (e.g., linear vertical list). - Attach the
Adapterto theRecyclerView.
java
RecyclerView recyclerView = findViewById(R.id.recyclerView); recyclerView.setLayoutManager(new LinearLayoutManager(this)); MyAdapter adapter = new MyAdapter(dataList); recyclerView.setAdapter(adapter);
Example
This example shows a simple RecyclerView displaying a list of strings with a vertical layout.
java
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); RecyclerView recyclerView = findViewById(R.id.recyclerView); recyclerView.setLayoutManager(new LinearLayoutManager(this)); List<String> data = Arrays.asList("Apple", "Banana", "Cherry", "Date", "Elderberry"); MyAdapter adapter = new MyAdapter(data); recyclerView.setAdapter(adapter); } } class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> { private final List<String> localData; MyAdapter(List<String> data) { localData = data; } static class ViewHolder extends RecyclerView.ViewHolder { TextView textView; ViewHolder(View itemView) { super(itemView); textView = itemView.findViewById(android.R.id.text1); } } @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(localData.get(position)); } @Override public int getItemCount() { return localData.size(); } }
Output
A vertical scrolling list showing: Apple, Banana, Cherry, Date, Elderberry
Common Pitfalls
Common mistakes when using RecyclerView include:
- Not setting a
LayoutManager, which causes the list not to display. - Forgetting to override all required
Adaptermethods likegetItemCount(). - Not recycling views properly by misusing
ViewHolder. - Using heavy operations inside
onBindViewHolder(), which slows scrolling.
java
/* Wrong: No LayoutManager set */ RecyclerView recyclerView = findViewById(R.id.recyclerView); recyclerView.setAdapter(adapter); // This will not show items /* Right: Set LayoutManager */ recyclerView.setLayoutManager(new LinearLayoutManager(this)); recyclerView.setAdapter(adapter);
Quick Reference
Summary tips for using RecyclerView:
- Always set a
LayoutManager. - Use
ViewHolderpattern inside yourAdapterfor performance. - Keep
onBindViewHolder()lightweight. - Use
notifyDataSetChanged()or related methods to update the list.
Key Takeaways
RecyclerView needs a LayoutManager and Adapter to display lists efficiently.
Create a ViewHolder inside Adapter to reuse views and improve performance.
Always override getItemCount(), onCreateViewHolder(), and onBindViewHolder() in Adapter.
Set LayoutManager before attaching Adapter to avoid empty lists.
Keep binding logic simple to ensure smooth scrolling.