0
0
Android-kotlinHow-ToBeginner ยท 4 min read

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 RecyclerView widget in your XML layout.
  • Create an Adapter class that extends RecyclerView.Adapter and defines a ViewHolder.
  • Set a LayoutManager on the RecyclerView to arrange items (e.g., linear vertical list).
  • Attach the Adapter to the RecyclerView.
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 Adapter methods like getItemCount().
  • 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 ViewHolder pattern inside your Adapter for 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.