Click here to Skip to main content
13,865,159 members
Click here to Skip to main content
Add your own
alternative version

Tagged as


2 bookmarked
Posted 25 Nov 2017
Licenced CPOL

Android Recycler View Tutorial: Part 2

, 25 Nov 2017
Rate this:
Please Sign up or sign in to vote.
Android Recycler View Tutorial

In Part 1, we created recycler view without any model or view holder. In this part, we will create data model and a view holder and bind both these to the recycler view.

Previous part:

Now let's first create a simple data model:

This class does nothing special, it just generates some dummy data.

public class DummyModel {
    String textData = "not set yet !!";
    public DummyModel() {
     * constructor to set the dummy text
     * @param data
    public DummyModel(String data) {
        textData = data;
    static public List<DummyModel> getDummyModel(int length) {
        List<DummyModel> dummyModelsList = new ArrayList<>();
        for (int i = 0; i < length; i++) {
            dummyModelsList.add(new DummyModel("This is the model "+i));
        return dummyModelsList;
     * just a setter method !Not used!
     * @param text
    public void setText(String text) {
        this.textData = text;

Now let's create our view holder which will set the data to the view:

We are creating a separate class for our view holder. This enables to reuse the component with different recycler view or one recycler view to have different components.

public class DummyVH extends RecyclerView.ViewHolder {
    TextView textView;
     * Constructor to set the items
     * @param itemView
    public DummyVH(View itemView) {
        textView = (TextView)itemView.findViewById(;
        textView.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                "yooo "+textView.getText(), Toast.LENGTH_SHORT).show();
     * function to set the data
     * @param dummyModel
    public void bindVH(DummyModel dummyModel)

Now let's create our adapter which will bind or view and the data model.

This class is the same as the previous dataAdapter created in the previous tutorial. Recycler layout item is also the same. The view holder is just initiated from a different class.

 * THis class will be the data adapter for the recycler view
 * This class must extend the Recycler view adapter.
public class RvDataAdpt2 extends RecyclerView.Adapter {
    List<DummyModel> dummyModelsList;
    public RvDataAdpt2(List<DummyModel> listDummyModels)
        dummyModelsList = listDummyModels;
    public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        //lets populate our recycler view with the item created;
        //get the view from the layout inflator
        //  third parameter is set to false to prevent viewgroup to attach to root
        View view = LayoutInflater.from(parent.getContext()).inflate
        return new DummyVH(view);
    public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
        //bind the view with the holder
    public int getItemCount() {
        return dummyModelsList.size(); // to display the 100 items

Now let's bind this adapter to the recycler view. I have used the project created in the previous tutorial.

public class RecylerActivity extends AppCompatActivity {
        public static Context context;
    //Below are the components which are required by the Recycler view
    RecyclerView recyclerView; //this will hold the recycler view from the layout
    RecyclerView.Adapter   mAdapter; //this will hold the adapter for the recycler view
    RecyclerView.LayoutManager mLayoutmanager; //holds the layout manager
    protected void onCreate(Bundle savedInstanceState) {
        context = this;
        setContentView(R.layout.activity_recyler); //layout which contain the recycler view
        //Find the Recycler view
        recyclerView = (RecyclerView)findViewById
                       (; //got the recycler view from the layout
        //set the layout manager for the recycler view
        //standard layout managers( LinearLayoutManager or GridLayoutManager) can be used, 
        //or implement your own.
        //Layout Manager tells how the item are shown in your Recycler View
        mLayoutmanager = new LinearLayoutManager(this);
        //set the data adapter
        //Adapter contain the Data Which need to be shown in the view
        // mAdapter = new RvDataAdpt();
        mAdapter = new RvDataAdpt2(DummyModel.getDummyModel(100));

Get the source from


This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


About the Author

India India
No Biography provided

You may also be interested in...

Comments and Discussions

-- There are no messages in this forum --
Permalink | Advertise | Privacy | Cookies | Terms of Use | Mobile
Web06 | 2.8.190214.1 | Last Updated 26 Nov 2017
Article Copyright 2017 by hexgear
Everything else Copyright © CodeProject, 1999-2019
Layout: fixed | fluid