snipt

Ctrl+h for KB shortcuts

Java

Android Volley RecycleView CardView ImageLoader

// Dependencies
    compile 'com.android.support:appcompat-v7:23.+'
    compile 'com.android.support:support-v4:23.+'
    compile 'com.android.support:design:23.+'
    compile 'com.mcxiaoke.volley:library:1.0.19'
    compile 'com.android.support:cardview-v7:23.0.+'
    compile 'com.android.support:recyclerview-v7:23.0.+'
    compile 'com.google.code.gson:gson:2.5'


// CardView xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:padding="1dp">

    <android.support.v7.widget.CardView
        android:id="@+id/cv"
        xmlns:card_view="http://schemas.android.com/apk/res-auto"
        android:layout_margin="3dp"
        android:orientation="horizontal"
        card_view:cardCornerRadius="1dp"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"

            android:padding="5dp">

            <com.android.volley.toolbox.NetworkImageView
                android:id="@+id/person_photo"
                android:layout_width="150dp"
                android:layout_height="150dp"
                android:scaleType="centerCrop"
                android:layout_alignParentLeft="true"
                android:layout_alignParentTop="true"
                android:layout_marginRight="16dp" />


            <TextView
                android:id="@+id/person_name"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentTop="true"
                android:layout_toRightOf="@+id/person_photo"
                android:textSize="30sp" />

            <TextView
                android:id="@+id/person_age"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@+id/person_name"
                android:layout_toRightOf="@+id/person_photo" />

        </RelativeLayout>

    </android.support.v7.widget.CardView>

</LinearLayout>
                    
//activity/frament layout
 <android.support.v7.widget.RecyclerView
        android:id="@+id/my_recycler_view"
        android:scrollbars="vertical"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>

// MyAdapter
package hr.bioplanet.bioplanet.adapters;

import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.CardView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;

import com.android.volley.toolbox.ImageLoader;
import com.android.volley.toolbox.NetworkImageView;

import java.util.List;

import hr.bioplanet.bioplanet.MainActivity;
import hr.bioplanet.bioplanet.R;
import hr.bioplanet.bioplanet.app.AppController;
import hr.bioplanet.bioplanet.models.Recipe;

/**
 * Created by josip.bozic on 19.1.2016..
 */
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.RecipeViewHolder>{

    public static class RecipeViewHolder extends RecyclerView.ViewHolder {
        CardView cv;
        TextView name;
        TextView description;
        NetworkImageView photo;

        RecipeViewHolder(View itemView) {
            super(itemView);
            cv = (CardView)itemView.findViewById(R.id.cv);
            name = (TextView)itemView.findViewById(R.id.person_name);
            description = (TextView)itemView.findViewById(R.id.person_age);
            photo = (NetworkImageView )itemView.findViewById(R.id.person_photo);
        }
    }

    List<Recipe> list;

    public MyAdapter(List<Recipe> list){
        this.list = list;
    }

    @Override
    public int getItemCount() {
        return list.size();
    }

    @Override
    public RecipeViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
        View v = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.cv_example, viewGroup, false);
        RecipeViewHolder pvh = new RecipeViewHolder(v);
        return pvh;
    }

    @Override
    public void onBindViewHolder(RecipeViewHolder personViewHolder, int i) {
        personViewHolder.name.setText(list.get(i).getName());
        personViewHolder.description.setText(list.get(i).getDescription());
        ImageLoader imageLoader = AppController.getInstance().getImageLoader();
        personViewHolder.photo.setImageUrl(list.get(i).getPicture(), imageLoader);
    }

    @Override
    public void onAttachedToRecyclerView(RecyclerView recyclerView) {
        super.onAttachedToRecyclerView(recyclerView);
    }

}


// Activity.. 
// onCreate...
mRecyclerView = (RecyclerView) findViewById(R.id.my_recycler_view);

        // use this setting to improve performance if you know that changes
        // in content do not change the layout size of the RecyclerView
        mRecyclerView.setHasFixedSize(true);

        // use a linear layout manager
        mLayoutManager = new LinearLayoutManager(this);
        mRecyclerView.setLayoutManager(mLayoutManager);

        getData();

// getData
private void getData(){
        String tag_json_obj = "gson_obj_req";

        String url = "http://someurl/api/mobile/recipes?populate=types&populate=tags&enabled=1";

        GsonRequest<Recipe[]> jsonObjReq = new GsonRequest<>(
                url,
                Recipe[].class,
                null,
                new Response.Listener<Recipe[]>() {

                    @Override
                    public void onResponse(Recipe[] response) {
                        recipes = Arrays.asList(response);
                        mAdapter = new MyAdapter(recipes);
                        mRecyclerView.setAdapter(mAdapter);
                    }
                }, new Response.ErrorListener() {

            @Override
            public void onErrorResponse(VolleyError error) {
                VolleyLog.d(TAG, "Error: " + error.getMessage());
                // hide the progress dialog
            }
        });

        AppController.getInstance().addToRequestQueue(jsonObjReq, tag_json_obj);
    }
                 
https://snipt.net/embed/79c476b27b09db43c11189b58f5c08db/
/raw/79c476b27b09db43c11189b58f5c08db/
79c476b27b09db43c11189b58f5c08db
java
Java
191
2019-07-16T11:02:44
True
False
False
Jan 19, 2016 at 05:12 PM
/api/public/snipt/143686/
android-volley-recycleview-cardview-imageloader
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><a href="#L-1"> 1</a> <a href="#L-2"> 2</a> <a href="#L-3"> 3</a> <a href="#L-4"> 4</a> <a href="#L-5"> 5</a> <a href="#L-6"> 6</a> <a href="#L-7"> 7</a> <a href="#L-8"> 8</a> <a href="#L-9"> 9</a> <a href="#L-10"> 10</a> <a href="#L-11"> 11</a> <a href="#L-12"> 12</a> <a href="#L-13"> 13</a> <a href="#L-14"> 14</a> <a href="#L-15"> 15</a> <a href="#L-16"> 16</a> <a href="#L-17"> 17</a> <a href="#L-18"> 18</a> <a href="#L-19"> 19</a> <a href="#L-20"> 20</a> <a href="#L-21"> 21</a> <a href="#L-22"> 22</a> <a href="#L-23"> 23</a> <a href="#L-24"> 24</a> <a href="#L-25"> 25</a> <a href="#L-26"> 26</a> <a href="#L-27"> 27</a> <a href="#L-28"> 28</a> <a href="#L-29"> 29</a> <a href="#L-30"> 30</a> <a href="#L-31"> 31</a> <a href="#L-32"> 32</a> <a href="#L-33"> 33</a> <a href="#L-34"> 34</a> <a href="#L-35"> 35</a> <a href="#L-36"> 36</a> <a href="#L-37"> 37</a> <a href="#L-38"> 38</a> <a href="#L-39"> 39</a> <a href="#L-40"> 40</a> <a href="#L-41"> 41</a> <a href="#L-42"> 42</a> <a href="#L-43"> 43</a> <a href="#L-44"> 44</a> <a href="#L-45"> 45</a> <a href="#L-46"> 46</a> <a href="#L-47"> 47</a> <a href="#L-48"> 48</a> <a href="#L-49"> 49</a> <a href="#L-50"> 50</a> <a href="#L-51"> 51</a> <a href="#L-52"> 52</a> <a href="#L-53"> 53</a> <a href="#L-54"> 54</a> <a href="#L-55"> 55</a> <a href="#L-56"> 56</a> <a href="#L-57"> 57</a> <a href="#L-58"> 58</a> <a href="#L-59"> 59</a> <a href="#L-60"> 60</a> <a href="#L-61"> 61</a> <a href="#L-62"> 62</a> <a href="#L-63"> 63</a> <a href="#L-64"> 64</a> <a href="#L-65"> 65</a> <a href="#L-66"> 66</a> <a href="#L-67"> 67</a> <a href="#L-68"> 68</a> <a href="#L-69"> 69</a> <a href="#L-70"> 70</a> <a href="#L-71"> 71</a> <a href="#L-72"> 72</a> <a href="#L-73"> 73</a> <a href="#L-74"> 74</a> <a href="#L-75"> 75</a> <a href="#L-76"> 76</a> <a href="#L-77"> 77</a> <a href="#L-78"> 78</a> <a href="#L-79"> 79</a> <a href="#L-80"> 80</a> <a href="#L-81"> 81</a> <a href="#L-82"> 82</a> <a href="#L-83"> 83</a> <a href="#L-84"> 84</a> <a href="#L-85"> 85</a> <a href="#L-86"> 86</a> <a href="#L-87"> 87</a> <a href="#L-88"> 88</a> <a href="#L-89"> 89</a> <a href="#L-90"> 90</a> <a href="#L-91"> 91</a> <a href="#L-92"> 92</a> <a href="#L-93"> 93</a> <a href="#L-94"> 94</a> <a href="#L-95"> 95</a> <a href="#L-96"> 96</a> <a href="#L-97"> 97</a> <a href="#L-98"> 98</a> <a href="#L-99"> 99</a> <a href="#L-100">100</a> <a href="#L-101">101</a> <a href="#L-102">102</a> <a href="#L-103">103</a> <a href="#L-104">104</a> <a href="#L-105">105</a> <a href="#L-106">106</a> <a href="#L-107">107</a> <a href="#L-108">108</a> <a href="#L-109">109</a> <a href="#L-110">110</a> <a href="#L-111">111</a> <a href="#L-112">112</a> <a href="#L-113">113</a> <a href="#L-114">114</a> <a href="#L-115">115</a> <a href="#L-116">116</a> <a href="#L-117">117</a> <a href="#L-118">118</a> <a href="#L-119">119</a> <a href="#L-120">120</a> <a href="#L-121">121</a> <a href="#L-122">122</a> <a href="#L-123">123</a> <a href="#L-124">124</a> <a href="#L-125">125</a> <a href="#L-126">126</a> <a href="#L-127">127</a> <a href="#L-128">128</a> <a href="#L-129">129</a> <a href="#L-130">130</a> <a href="#L-131">131</a> <a href="#L-132">132</a> <a href="#L-133">133</a> <a href="#L-134">134</a> <a href="#L-135">135</a> <a href="#L-136">136</a> <a href="#L-137">137</a> <a href="#L-138">138</a> <a href="#L-139">139</a> <a href="#L-140">140</a> <a href="#L-141">141</a> <a href="#L-142">142</a> <a href="#L-143">143</a> <a href="#L-144">144</a> <a href="#L-145">145</a> <a href="#L-146">146</a> <a href="#L-147">147</a> <a href="#L-148">148</a> <a href="#L-149">149</a> <a href="#L-150">150</a> <a href="#L-151">151</a> <a href="#L-152">152</a> <a href="#L-153">153</a> <a href="#L-154">154</a> <a href="#L-155">155</a> <a href="#L-156">156</a> <a href="#L-157">157</a> <a href="#L-158">158</a> <a href="#L-159">159</a> <a href="#L-160">160</a> <a href="#L-161">161</a> <a href="#L-162">162</a> <a href="#L-163">163</a> <a href="#L-164">164</a> <a href="#L-165">165</a> <a href="#L-166">166</a> <a href="#L-167">167</a> <a href="#L-168">168</a> <a href="#L-169">169</a> <a href="#L-170">170</a> <a href="#L-171">171</a> <a href="#L-172">172</a> <a href="#L-173">173</a> <a href="#L-174">174</a> <a href="#L-175">175</a> <a href="#L-176">176</a> <a href="#L-177">177</a> <a href="#L-178">178</a> <a href="#L-179">179</a> <a href="#L-180">180</a> <a href="#L-181">181</a> <a href="#L-182">182</a> <a href="#L-183">183</a> <a href="#L-184">184</a> <a href="#L-185">185</a> <a href="#L-186">186</a> <a href="#L-187">187</a> <a href="#L-188">188</a> <a href="#L-189">189</a></pre></div></td><td class="code"><div class="highlight"><pre><span></span><span id="L-1"><a name="L-1"></a><span class="c1">// Dependencies</span> </span><span id="L-2"><a name="L-2"></a> <span class="n">compile</span> <span class="err">&#39;</span><span class="n">com</span><span class="o">.</span><span class="na">android</span><span class="o">.</span><span class="na">support</span><span class="o">:</span><span class="n">appcompat</span><span class="o">-</span><span class="n">v7</span><span class="o">:</span><span class="mf">23.</span><span class="o">+</span><span class="err">&#39;</span> </span><span id="L-3"><a name="L-3"></a> <span class="n">compile</span> <span class="err">&#39;</span><span class="n">com</span><span class="o">.</span><span class="na">android</span><span class="o">.</span><span class="na">support</span><span class="o">:</span><span class="n">support</span><span class="o">-</span><span class="n">v4</span><span class="o">:</span><span class="mf">23.</span><span class="o">+</span><span class="err">&#39;</span> </span><span id="L-4"><a name="L-4"></a> <span class="n">compile</span> <span class="err">&#39;</span><span class="n">com</span><span class="o">.</span><span class="na">android</span><span class="o">.</span><span class="na">support</span><span class="o">:</span><span class="n">design</span><span class="o">:</span><span class="mf">23.</span><span class="o">+</span><span class="err">&#39;</span> </span><span id="L-5"><a name="L-5"></a> <span class="n">compile</span> <span class="err">&#39;</span><span class="n">com</span><span class="o">.</span><span class="na">mcxiaoke</span><span class="o">.</span><span class="na">volley</span><span class="o">:</span><span class="n">library</span><span class="o">:</span><span class="mf">1.0.19</span><span class="err">&#39;</span> </span><span id="L-6"><a name="L-6"></a> <span class="n">compile</span> <span class="err">&#39;</span><span class="n">com</span><span class="o">.</span><span class="na">android</span><span class="o">.</span><span class="na">support</span><span class="o">:</span><span class="n">cardview</span><span class="o">-</span><span class="n">v7</span><span class="o">:</span><span class="mf">23.0</span><span class="o">.+</span><span class="err">&#39;</span> </span><span id="L-7"><a name="L-7"></a> <span class="n">compile</span> <span class="err">&#39;</span><span class="n">com</span><span class="o">.</span><span class="na">android</span><span class="o">.</span><span class="na">support</span><span class="o">:</span><span class="n">recyclerview</span><span class="o">-</span><span class="n">v7</span><span class="o">:</span><span class="mf">23.0</span><span class="o">.+</span><span class="err">&#39;</span> </span><span id="L-8"><a name="L-8"></a> <span class="n">compile</span> <span class="err">&#39;</span><span class="n">com</span><span class="o">.</span><span class="na">google</span><span class="o">.</span><span class="na">code</span><span class="o">.</span><span class="na">gson</span><span class="o">:</span><span class="n">gson</span><span class="o">:</span><span class="mf">2.5</span><span class="err">&#39;</span> </span><span id="L-9"><a name="L-9"></a> </span><span id="L-10"><a name="L-10"></a> </span><span id="L-11"><a name="L-11"></a><span class="c1">// CardView xml</span> </span><span id="L-12"><a name="L-12"></a><span class="o">&lt;?</span><span class="n">xml</span> <span class="n">version</span><span class="o">=</span><span class="s">&quot;1.0&quot;</span> <span class="n">encoding</span><span class="o">=</span><span class="s">&quot;utf-8&quot;</span><span class="o">?&gt;</span> </span><span id="L-13"><a name="L-13"></a><span class="o">&lt;</span><span class="n">LinearLayout</span> <span class="n">xmlns</span><span class="o">:</span><span class="n">android</span><span class="o">=</span><span class="s">&quot;http://schemas.android.com/apk/res/android&quot;</span> </span><span id="L-14"><a name="L-14"></a> <span class="n">android</span><span class="o">:</span><span class="n">layout_width</span><span class="o">=</span><span class="s">&quot;match_parent&quot;</span> </span><span id="L-15"><a name="L-15"></a> <span class="n">android</span><span class="o">:</span><span class="n">layout_height</span><span class="o">=</span><span class="s">&quot;match_parent&quot;</span> </span><span id="L-16"><a name="L-16"></a> <span class="n">android</span><span class="o">:</span><span class="n">padding</span><span class="o">=</span><span class="s">&quot;1dp&quot;</span><span class="o">&gt;</span> </span><span id="L-17"><a name="L-17"></a> </span><span id="L-18"><a name="L-18"></a> <span class="o">&lt;</span><span class="n">android</span><span class="o">.</span><span class="na">support</span><span class="o">.</span><span class="na">v7</span><span class="o">.</span><span class="na">widget</span><span class="o">.</span><span class="na">CardView</span> </span><span id="L-19"><a name="L-19"></a> <span class="n">android</span><span class="o">:</span><span class="n">id</span><span class="o">=</span><span class="s">&quot;@+id/cv&quot;</span> </span><span id="L-20"><a name="L-20"></a> <span class="n">xmlns</span><span class="o">:</span><span class="n">card_view</span><span class="o">=</span><span class="s">&quot;http://schemas.android.com/apk/res-auto&quot;</span> </span><span id="L-21"><a name="L-21"></a> <span class="n">android</span><span class="o">:</span><span class="n">layout_margin</span><span class="o">=</span><span class="s">&quot;3dp&quot;</span> </span><span id="L-22"><a name="L-22"></a> <span class="n">android</span><span class="o">:</span><span class="n">orientation</span><span class="o">=</span><span class="s">&quot;horizontal&quot;</span> </span><span id="L-23"><a name="L-23"></a> <span class="n">card_view</span><span class="o">:</span><span class="n">cardCornerRadius</span><span class="o">=</span><span class="s">&quot;1dp&quot;</span> </span><span id="L-24"><a name="L-24"></a> <span class="n">android</span><span class="o">:</span><span class="n">layout_width</span><span class="o">=</span><span class="s">&quot;match_parent&quot;</span> </span><span id="L-25"><a name="L-25"></a> <span class="n">android</span><span class="o">:</span><span class="n">layout_height</span><span class="o">=</span><span class="s">&quot;wrap_content&quot;</span><span class="o">&gt;</span> </span><span id="L-26"><a name="L-26"></a> </span><span id="L-27"><a name="L-27"></a> <span class="o">&lt;</span><span class="n">RelativeLayout</span> </span><span id="L-28"><a name="L-28"></a> <span class="n">android</span><span class="o">:</span><span class="n">layout_width</span><span class="o">=</span><span class="s">&quot;match_parent&quot;</span> </span><span id="L-29"><a name="L-29"></a> <span class="n">android</span><span class="o">:</span><span class="n">layout_height</span><span class="o">=</span><span class="s">&quot;wrap_content&quot;</span> </span><span id="L-30"><a name="L-30"></a> </span><span id="L-31"><a name="L-31"></a><span class="nl"> android:</span><span class="n">padding</span><span class="o">=</span><span class="s">&quot;5dp&quot;</span><span class="o">&gt;</span> </span><span id="L-32"><a name="L-32"></a> </span><span id="L-33"><a name="L-33"></a> <span class="o">&lt;</span><span class="n">com</span><span class="o">.</span><span class="na">android</span><span class="o">.</span><span class="na">volley</span><span class="o">.</span><span class="na">toolbox</span><span class="o">.</span><span class="na">NetworkImageView</span> </span><span id="L-34"><a name="L-34"></a> <span class="n">android</span><span class="o">:</span><span class="n">id</span><span class="o">=</span><span class="s">&quot;@+id/person_photo&quot;</span> </span><span id="L-35"><a name="L-35"></a> <span class="n">android</span><span class="o">:</span><span class="n">layout_width</span><span class="o">=</span><span class="s">&quot;150dp&quot;</span> </span><span id="L-36"><a name="L-36"></a> <span class="n">android</span><span class="o">:</span><span class="n">layout_height</span><span class="o">=</span><span class="s">&quot;150dp&quot;</span> </span><span id="L-37"><a name="L-37"></a> <span class="n">android</span><span class="o">:</span><span class="n">scaleType</span><span class="o">=</span><span class="s">&quot;centerCrop&quot;</span> </span><span id="L-38"><a name="L-38"></a> <span class="n">android</span><span class="o">:</span><span class="n">layout_alignParentLeft</span><span class="o">=</span><span class="s">&quot;true&quot;</span> </span><span id="L-39"><a name="L-39"></a> <span class="n">android</span><span class="o">:</span><span class="n">layout_alignParentTop</span><span class="o">=</span><span class="s">&quot;true&quot;</span> </span><span id="L-40"><a name="L-40"></a> <span class="n">android</span><span class="o">:</span><span class="n">layout_marginRight</span><span class="o">=</span><span class="s">&quot;16dp&quot;</span> <span class="o">/&gt;</span> </span><span id="L-41"><a name="L-41"></a> </span><span id="L-42"><a name="L-42"></a> </span><span id="L-43"><a name="L-43"></a> <span class="o">&lt;</span><span class="n">TextView</span> </span><span id="L-44"><a name="L-44"></a> <span class="n">android</span><span class="o">:</span><span class="n">id</span><span class="o">=</span><span class="s">&quot;@+id/person_name&quot;</span> </span><span id="L-45"><a name="L-45"></a> <span class="n">android</span><span class="o">:</span><span class="n">layout_width</span><span class="o">=</span><span class="s">&quot;wrap_content&quot;</span> </span><span id="L-46"><a name="L-46"></a> <span class="n">android</span><span class="o">:</span><span class="n">layout_height</span><span class="o">=</span><span class="s">&quot;wrap_content&quot;</span> </span><span id="L-47"><a name="L-47"></a> <span class="n">android</span><span class="o">:</span><span class="n">layout_alignParentTop</span><span class="o">=</span><span class="s">&quot;true&quot;</span> </span><span id="L-48"><a name="L-48"></a> <span class="n">android</span><span class="o">:</span><span class="n">layout_toRightOf</span><span class="o">=</span><span class="s">&quot;@+id/person_photo&quot;</span> </span><span id="L-49"><a name="L-49"></a> <span class="n">android</span><span class="o">:</span><span class="n">textSize</span><span class="o">=</span><span class="s">&quot;30sp&quot;</span> <span class="o">/&gt;</span> </span><span id="L-50"><a name="L-50"></a> </span><span id="L-51"><a name="L-51"></a> <span class="o">&lt;</span><span class="n">TextView</span> </span><span id="L-52"><a name="L-52"></a> <span class="n">android</span><span class="o">:</span><span class="n">id</span><span class="o">=</span><span class="s">&quot;@+id/person_age&quot;</span> </span><span id="L-53"><a name="L-53"></a> <span class="n">android</span><span class="o">:</span><span class="n">layout_width</span><span class="o">=</span><span class="s">&quot;wrap_content&quot;</span> </span><span id="L-54"><a name="L-54"></a> <span class="n">android</span><span class="o">:</span><span class="n">layout_height</span><span class="o">=</span><span class="s">&quot;wrap_content&quot;</span> </span><span id="L-55"><a name="L-55"></a> <span class="n">android</span><span class="o">:</span><span class="n">layout_below</span><span class="o">=</span><span class="s">&quot;@+id/person_name&quot;</span> </span><span id="L-56"><a name="L-56"></a> <span class="n">android</span><span class="o">:</span><span class="n">layout_toRightOf</span><span class="o">=</span><span class="s">&quot;@+id/person_photo&quot;</span> <span class="o">/&gt;</span> </span><span id="L-57"><a name="L-57"></a> </span><span id="L-58"><a name="L-58"></a> <span class="o">&lt;/</span><span class="n">RelativeLayout</span><span class="o">&gt;</span> </span><span id="L-59"><a name="L-59"></a> </span><span id="L-60"><a name="L-60"></a> <span class="o">&lt;/</span><span class="n">android</span><span class="o">.</span><span class="na">support</span><span class="o">.</span><span class="na">v7</span><span class="o">.</span><span class="na">widget</span><span class="o">.</span><span class="na">CardView</span><span class="o">&gt;</span> </span><span id="L-61"><a name="L-61"></a> </span><span id="L-62"><a name="L-62"></a><span class="o">&lt;/</span><span class="n">LinearLayout</span><span class="o">&gt;</span> </span><span id="L-63"><a name="L-63"></a> </span><span id="L-64"><a name="L-64"></a><span class="c1">//activity/frament layout</span> </span><span id="L-65"><a name="L-65"></a> <span class="o">&lt;</span><span class="n">android</span><span class="o">.</span><span class="na">support</span><span class="o">.</span><span class="na">v7</span><span class="o">.</span><span class="na">widget</span><span class="o">.</span><span class="na">RecyclerView</span> </span><span id="L-66"><a name="L-66"></a> <span class="n">android</span><span class="o">:</span><span class="n">id</span><span class="o">=</span><span class="s">&quot;@+id/my_recycler_view&quot;</span> </span><span id="L-67"><a name="L-67"></a> <span class="n">android</span><span class="o">:</span><span class="n">scrollbars</span><span class="o">=</span><span class="s">&quot;vertical&quot;</span> </span><span id="L-68"><a name="L-68"></a> <span class="n">android</span><span class="o">:</span><span class="n">layout_width</span><span class="o">=</span><span class="s">&quot;match_parent&quot;</span> </span><span id="L-69"><a name="L-69"></a> <span class="n">android</span><span class="o">:</span><span class="n">layout_height</span><span class="o">=</span><span class="s">&quot;match_parent&quot;</span><span class="o">/&gt;</span> </span><span id="L-70"><a name="L-70"></a> </span><span id="L-71"><a name="L-71"></a><span class="c1">// MyAdapter</span> </span><span id="L-72"><a name="L-72"></a><span class="kn">package</span> <span class="nn">hr.bioplanet.bioplanet.adapters</span><span class="o">;</span> </span><span id="L-73"><a name="L-73"></a> </span><span id="L-74"><a name="L-74"></a><span class="kn">import</span> <span class="nn">android.support.v7.widget.RecyclerView</span><span class="o">;</span> </span><span id="L-75"><a name="L-75"></a><span class="kn">import</span> <span class="nn">android.support.v7.widget.CardView</span><span class="o">;</span> </span><span id="L-76"><a name="L-76"></a><span class="kn">import</span> <span class="nn">android.view.LayoutInflater</span><span class="o">;</span> </span><span id="L-77"><a name="L-77"></a><span class="kn">import</span> <span class="nn">android.view.View</span><span class="o">;</span> </span><span id="L-78"><a name="L-78"></a><span class="kn">import</span> <span class="nn">android.view.ViewGroup</span><span class="o">;</span> </span><span id="L-79"><a name="L-79"></a><span class="kn">import</span> <span class="nn">android.widget.ImageView</span><span class="o">;</span> </span><span id="L-80"><a name="L-80"></a><span class="kn">import</span> <span class="nn">android.widget.TextView</span><span class="o">;</span> </span><span id="L-81"><a name="L-81"></a> </span><span id="L-82"><a name="L-82"></a><span class="kn">import</span> <span class="nn">com.android.volley.toolbox.ImageLoader</span><span class="o">;</span> </span><span id="L-83"><a name="L-83"></a><span class="kn">import</span> <span class="nn">com.android.volley.toolbox.NetworkImageView</span><span class="o">;</span> </span><span id="L-84"><a name="L-84"></a> </span><span id="L-85"><a name="L-85"></a><span class="kn">import</span> <span class="nn">java.util.List</span><span class="o">;</span> </span><span id="L-86"><a name="L-86"></a> </span><span id="L-87"><a name="L-87"></a><span class="kn">import</span> <span class="nn">hr.bioplanet.bioplanet.MainActivity</span><span class="o">;</span> </span><span id="L-88"><a name="L-88"></a><span class="kn">import</span> <span class="nn">hr.bioplanet.bioplanet.R</span><span class="o">;</span> </span><span id="L-89"><a name="L-89"></a><span class="kn">import</span> <span class="nn">hr.bioplanet.bioplanet.app.AppController</span><span class="o">;</span> </span><span id="L-90"><a name="L-90"></a><span class="kn">import</span> <span class="nn">hr.bioplanet.bioplanet.models.Recipe</span><span class="o">;</span> </span><span id="L-91"><a name="L-91"></a> </span><span id="L-92"><a name="L-92"></a><span class="cm">/**</span> </span><span id="L-93"><a name="L-93"></a><span class="cm"> * Created by josip.bozic on 19.1.2016..</span> </span><span id="L-94"><a name="L-94"></a><span class="cm"> */</span> </span><span id="L-95"><a name="L-95"></a><span class="kd">public</span> <span class="kd">class</span> <span class="nc">MyAdapter</span> <span class="kd">extends</span> <span class="n">RecyclerView</span><span class="o">.</span><span class="na">Adapter</span><span class="o">&lt;</span><span class="n">MyAdapter</span><span class="o">.</span><span class="na">RecipeViewHolder</span><span class="o">&gt;{</span> </span><span id="L-96"><a name="L-96"></a> </span><span id="L-97"><a name="L-97"></a> <span class="kd">public</span> <span class="kd">static</span> <span class="kd">class</span> <span class="nc">RecipeViewHolder</span> <span class="kd">extends</span> <span class="n">RecyclerView</span><span class="o">.</span><span class="na">ViewHolder</span> <span class="o">{</span> </span><span id="L-98"><a name="L-98"></a> <span class="n">CardView</span> <span class="n">cv</span><span class="o">;</span> </span><span id="L-99"><a name="L-99"></a> <span class="n">TextView</span> <span class="n">name</span><span class="o">;</span> </span><span id="L-100"><a name="L-100"></a> <span class="n">TextView</span> <span class="n">description</span><span class="o">;</span> </span><span id="L-101"><a name="L-101"></a> <span class="n">NetworkImageView</span> <span class="n">photo</span><span class="o">;</span> </span><span id="L-102"><a name="L-102"></a> </span><span id="L-103"><a name="L-103"></a> <span class="n">RecipeViewHolder</span><span class="o">(</span><span class="n">View</span> <span class="n">itemView</span><span class="o">)</span> <span class="o">{</span> </span><span id="L-104"><a name="L-104"></a> <span class="kd">super</span><span class="o">(</span><span class="n">itemView</span><span class="o">);</span> </span><span id="L-105"><a name="L-105"></a> <span class="n">cv</span> <span class="o">=</span> <span class="o">(</span><span class="n">CardView</span><span class="o">)</span><span class="n">itemView</span><span class="o">.</span><span class="na">findViewById</span><span class="o">(</span><span class="n">R</span><span class="o">.</span><span class="na">id</span><span class="o">.</span><span class="na">cv</span><span class="o">);</span> </span><span id="L-106"><a name="L-106"></a> <span class="n">name</span> <span class="o">=</span> <span class="o">(</span><span class="n">TextView</span><span class="o">)</span><span class="n">itemView</span><span class="o">.</span><span class="na">findViewById</span><span class="o">(</span><span class="n">R</span><span class="o">.</span><span class="na">id</span><span class="o">.</span><span class="na">person_name</span><span class="o">);</span> </span><span id="L-107"><a name="L-107"></a> <span class="n">description</span> <span class="o">=</span> <span class="o">(</span><span class="n">TextView</span><span class="o">)</span><span class="n">itemView</span><span class="o">.</span><span class="na">findViewById</span><span class="o">(</span><span class="n">R</span><span class="o">.</span><span class="na">id</span><span class="o">.</span><span class="na">person_age</span><span class="o">);</span> </span><span id="L-108"><a name="L-108"></a> <span class="n">photo</span> <span class="o">=</span> <span class="o">(</span><span class="n">NetworkImageView</span> <span class="o">)</span><span class="n">itemView</span><span class="o">.</span><span class="na">findViewById</span><span class="o">(</span><span class="n">R</span><span class="o">.</span><span class="na">id</span><span class="o">.</span><span class="na">person_photo</span><span class="o">);</span> </span><span id="L-109"><a name="L-109"></a> <span class="o">}</span> </span><span id="L-110"><a name="L-110"></a> <span class="o">}</span> </span><span id="L-111"><a name="L-111"></a> </span><span id="L-112"><a name="L-112"></a> <span class="n">List</span><span class="o">&lt;</span><span class="n">Recipe</span><span class="o">&gt;</span> <span class="n">list</span><span class="o">;</span> </span><span id="L-113"><a name="L-113"></a> </span><span id="L-114"><a name="L-114"></a> <span class="kd">public</span> <span class="nf">MyAdapter</span><span class="o">(</span><span class="n">List</span><span class="o">&lt;</span><span class="n">Recipe</span><span class="o">&gt;</span> <span class="n">list</span><span class="o">){</span> </span><span id="L-115"><a name="L-115"></a> <span class="k">this</span><span class="o">.</span><span class="na">list</span> <span class="o">=</span> <span class="n">list</span><span class="o">;</span> </span><span id="L-116"><a name="L-116"></a> <span class="o">}</span> </span><span id="L-117"><a name="L-117"></a> </span><span id="L-118"><a name="L-118"></a> <span class="nd">@Override</span> </span><span id="L-119"><a name="L-119"></a> <span class="kd">public</span> <span class="kt">int</span> <span class="nf">getItemCount</span><span class="o">()</span> <span class="o">{</span> </span><span id="L-120"><a name="L-120"></a> <span class="k">return</span> <span class="n">list</span><span class="o">.</span><span class="na">size</span><span class="o">();</span> </span><span id="L-121"><a name="L-121"></a> <span class="o">}</span> </span><span id="L-122"><a name="L-122"></a> </span><span id="L-123"><a name="L-123"></a> <span class="nd">@Override</span> </span><span id="L-124"><a name="L-124"></a> <span class="kd">public</span> <span class="n">RecipeViewHolder</span> <span class="nf">onCreateViewHolder</span><span class="o">(</span><span class="n">ViewGroup</span> <span class="n">viewGroup</span><span class="o">,</span> <span class="kt">int</span> <span class="n">i</span><span class="o">)</span> <span class="o">{</span> </span><span id="L-125"><a name="L-125"></a> <span class="n">View</span> <span class="n">v</span> <span class="o">=</span> <span class="n">LayoutInflater</span><span class="o">.</span><span class="na">from</span><span class="o">(</span><span class="n">viewGroup</span><span class="o">.</span><span class="na">getContext</span><span class="o">()).</span><span class="na">inflate</span><span class="o">(</span><span class="n">R</span><span class="o">.</span><span class="na">layout</span><span class="o">.</span><span class="na">cv_example</span><span class="o">,</span> <span class="n">viewGroup</span><span class="o">,</span> <span class="kc">false</span><span class="o">);</span> </span><span id="L-126"><a name="L-126"></a> <span class="n">RecipeViewHolder</span> <span class="n">pvh</span> <span class="o">=</span> <span class="k">new</span> <span class="n">RecipeViewHolder</span><span class="o">(</span><span class="n">v</span><span class="o">);</span> </span><span id="L-127"><a name="L-127"></a> <span class="k">return</span> <span class="n">pvh</span><span class="o">;</span> </span><span id="L-128"><a name="L-128"></a> <span class="o">}</span> </span><span id="L-129"><a name="L-129"></a> </span><span id="L-130"><a name="L-130"></a> <span class="nd">@Override</span> </span><span id="L-131"><a name="L-131"></a> <span class="kd">public</span> <span class="kt">void</span> <span class="nf">onBindViewHolder</span><span class="o">(</span><span class="n">RecipeViewHolder</span> <span class="n">personViewHolder</span><span class="o">,</span> <span class="kt">int</span> <span class="n">i</span><span class="o">)</span> <span class="o">{</span> </span><span id="L-132"><a name="L-132"></a> <span class="n">personViewHolder</span><span class="o">.</span><span class="na">name</span><span class="o">.</span><span class="na">setText</span><span class="o">(</span><span class="n">list</span><span class="o">.</span><span class="na">get</span><span class="o">(</span><span class="n">i</span><span class="o">).</span><span class="na">getName</span><span class="o">());</span> </span><span id="L-133"><a name="L-133"></a> <span class="n">personViewHolder</span><span class="o">.</span><span class="na">description</span><span class="o">.</span><span class="na">setText</span><span class="o">(</span><span class="n">list</span><span class="o">.</span><span class="na">get</span><span class="o">(</span><span class="n">i</span><span class="o">).</span><span class="na">getDescription</span><span class="o">());</span> </span><span id="L-134"><a name="L-134"></a> <span class="n">ImageLoader</span> <span class="n">imageLoader</span> <span class="o">=</span> <span class="n">AppController</span><span class="o">.</span><span class="na">getInstance</span><span class="o">().</span><span class="na">getImageLoader</span><span class="o">();</span> </span><span id="L-135"><a name="L-135"></a> <span class="n">personViewHolder</span><span class="o">.</span><span class="na">photo</span><span class="o">.</span><span class="na">setImageUrl</span><span class="o">(</span><span class="n">list</span><span class="o">.</span><span class="na">get</span><span class="o">(</span><span class="n">i</span><span class="o">).</span><span class="na">getPicture</span><span class="o">(),</span> <span class="n">imageLoader</span><span class="o">);</span> </span><span id="L-136"><a name="L-136"></a> <span class="o">}</span> </span><span id="L-137"><a name="L-137"></a> </span><span id="L-138"><a name="L-138"></a> <span class="nd">@Override</span> </span><span id="L-139"><a name="L-139"></a> <span class="kd">public</span> <span class="kt">void</span> <span class="nf">onAttachedToRecyclerView</span><span class="o">(</span><span class="n">RecyclerView</span> <span class="n">recyclerView</span><span class="o">)</span> <span class="o">{</span> </span><span id="L-140"><a name="L-140"></a> <span class="kd">super</span><span class="o">.</span><span class="na">onAttachedToRecyclerView</span><span class="o">(</span><span class="n">recyclerView</span><span class="o">);</span> </span><span id="L-141"><a name="L-141"></a> <span class="o">}</span> </span><span id="L-142"><a name="L-142"></a> </span><span id="L-143"><a name="L-143"></a><span class="o">}</span> </span><span id="L-144"><a name="L-144"></a> </span><span id="L-145"><a name="L-145"></a> </span><span id="L-146"><a name="L-146"></a><span class="c1">// Activity.. </span> </span><span id="L-147"><a name="L-147"></a><span class="c1">// onCreate...</span> </span><span id="L-148"><a name="L-148"></a><span class="n">mRecyclerView</span> <span class="o">=</span> <span class="o">(</span><span class="n">RecyclerView</span><span class="o">)</span> <span class="n">findViewById</span><span class="o">(</span><span class="n">R</span><span class="o">.</span><span class="na">id</span><span class="o">.</span><span class="na">my_recycler_view</span><span class="o">);</span> </span><span id="L-149"><a name="L-149"></a> </span><span id="L-150"><a name="L-150"></a> <span class="c1">// use this setting to improve performance if you know that changes</span> </span><span id="L-151"><a name="L-151"></a> <span class="c1">// in content do not change the layout size of the RecyclerView</span> </span><span id="L-152"><a name="L-152"></a> <span class="n">mRecyclerView</span><span class="o">.</span><span class="na">setHasFixedSize</span><span class="o">(</span><span class="kc">true</span><span class="o">);</span> </span><span id="L-153"><a name="L-153"></a> </span><span id="L-154"><a name="L-154"></a> <span class="c1">// use a linear layout manager</span> </span><span id="L-155"><a name="L-155"></a> <span class="n">mLayoutManager</span> <span class="o">=</span> <span class="k">new</span> <span class="n">LinearLayoutManager</span><span class="o">(</span><span class="k">this</span><span class="o">);</span> </span><span id="L-156"><a name="L-156"></a> <span class="n">mRecyclerView</span><span class="o">.</span><span class="na">setLayoutManager</span><span class="o">(</span><span class="n">mLayoutManager</span><span class="o">);</span> </span><span id="L-157"><a name="L-157"></a> </span><span id="L-158"><a name="L-158"></a> <span class="n">getData</span><span class="o">();</span> </span><span id="L-159"><a name="L-159"></a> </span><span id="L-160"><a name="L-160"></a><span class="c1">// getData</span> </span><span id="L-161"><a name="L-161"></a><span class="kd">private</span> <span class="kt">void</span> <span class="nf">getData</span><span class="o">(){</span> </span><span id="L-162"><a name="L-162"></a> <span class="n">String</span> <span class="n">tag_json_obj</span> <span class="o">=</span> <span class="s">&quot;gson_obj_req&quot;</span><span class="o">;</span> </span><span id="L-163"><a name="L-163"></a> </span><span id="L-164"><a name="L-164"></a> <span class="n">String</span> <span class="n">url</span> <span class="o">=</span> <span class="s">&quot;http://someurl/api/mobile/recipes?populate=types&amp;populate=tags&amp;enabled=1&quot;</span><span class="o">;</span> </span><span id="L-165"><a name="L-165"></a> </span><span id="L-166"><a name="L-166"></a> <span class="n">GsonRequest</span><span class="o">&lt;</span><span class="n">Recipe</span><span class="o">[]&gt;</span> <span class="n">jsonObjReq</span> <span class="o">=</span> <span class="k">new</span> <span class="n">GsonRequest</span><span class="o">&lt;&gt;(</span> </span><span id="L-167"><a name="L-167"></a> <span class="n">url</span><span class="o">,</span> </span><span id="L-168"><a name="L-168"></a> <span class="n">Recipe</span><span class="o">[].</span><span class="na">class</span><span class="o">,</span> </span><span id="L-169"><a name="L-169"></a> <span class="kc">null</span><span class="o">,</span> </span><span id="L-170"><a name="L-170"></a> <span class="k">new</span> <span class="n">Response</span><span class="o">.</span><span class="na">Listener</span><span class="o">&lt;</span><span class="n">Recipe</span><span class="o">[]&gt;()</span> <span class="o">{</span> </span><span id="L-171"><a name="L-171"></a> </span><span id="L-172"><a name="L-172"></a> <span class="nd">@Override</span> </span><span id="L-173"><a name="L-173"></a> <span class="kd">public</span> <span class="kt">void</span> <span class="nf">onResponse</span><span class="o">(</span><span class="n">Recipe</span><span class="o">[]</span> <span class="n">response</span><span class="o">)</span> <span class="o">{</span> </span><span id="L-174"><a name="L-174"></a> <span class="n">recipes</span> <span class="o">=</span> <span class="n">Arrays</span><span class="o">.</span><span class="na">asList</span><span class="o">(</span><span class="n">response</span><span class="o">);</span> </span><span id="L-175"><a name="L-175"></a> <span class="n">mAdapter</span> <span class="o">=</span> <span class="k">new</span> <span class="n">MyAdapter</span><span class="o">(</span><span class="n">recipes</span><span class="o">);</span> </span><span id="L-176"><a name="L-176"></a> <span class="n">mRecyclerView</span><span class="o">.</span><span class="na">setAdapter</span><span class="o">(</span><span class="n">mAdapter</span><span class="o">);</span> </span><span id="L-177"><a name="L-177"></a> <span class="o">}</span> </span><span id="L-178"><a name="L-178"></a> <span class="o">},</span> <span class="k">new</span> <span class="n">Response</span><span class="o">.</span><span class="na">ErrorListener</span><span class="o">()</span> <span class="o">{</span> </span><span id="L-179"><a name="L-179"></a> </span><span id="L-180"><a name="L-180"></a> <span class="nd">@Override</span> </span><span id="L-181"><a name="L-181"></a> <span class="kd">public</span> <span class="kt">void</span> <span class="nf">onErrorResponse</span><span class="o">(</span><span class="n">VolleyError</span> <span class="n">error</span><span class="o">)</span> <span class="o">{</span> </span><span id="L-182"><a name="L-182"></a> <span class="n">VolleyLog</span><span class="o">.</span><span class="na">d</span><span class="o">(</span><span class="n">TAG</span><span class="o">,</span> <span class="s">&quot;Error: &quot;</span> <span class="o">+</span> <span class="n">error</span><span class="o">.</span><span class="na">getMessage</span><span class="o">());</span> </span><span id="L-183"><a name="L-183"></a> <span class="c1">// hide the progress dialog</span> </span><span id="L-184"><a name="L-184"></a> <span class="o">}</span> </span><span id="L-185"><a name="L-185"></a> <span class="o">});</span> </span><span id="L-186"><a name="L-186"></a> </span><span id="L-187"><a name="L-187"></a> <span class="n">AppController</span><span class="o">.</span><span class="na">getInstance</span><span class="o">().</span><span class="na">addToRequestQueue</span><span class="o">(</span><span class="n">jsonObjReq</span><span class="o">,</span> <span class="n">tag_json_obj</span><span class="o">);</span> </span><span id="L-188"><a name="L-188"></a> <span class="o">}</span> </span><span id="L-189"><a name="L-189"></a> </span></pre></div> </td></tr></table>
Android, Volley, cardview, gson, imageloader, list, recycleview
--- 
+++ 
@@ -0,0 +1,190 @@
+// Dependencies
+    compile 'com.android.support:appcompat-v7:23.+'
+    compile 'com.android.support:support-v4:23.+'
+    compile 'com.android.support:design:23.+'
+    compile 'com.mcxiaoke.volley:library:1.0.19'
+    compile 'com.android.support:cardview-v7:23.0.+'
+    compile 'com.android.support:recyclerview-v7:23.0.+'
+    compile 'com.google.code.gson:gson:2.5'
+
+
+// CardView xml
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:padding="1dp">
+
+    <android.support.v7.widget.CardView
+        android:id="@+id/cv"
+        xmlns:card_view="http://schemas.android.com/apk/res-auto"
+        android:layout_margin="3dp"
+        android:orientation="horizontal"
+        card_view:cardCornerRadius="1dp"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content">
+
+        <RelativeLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+
+            android:padding="5dp">
+
+            <com.android.volley.toolbox.NetworkImageView
+                android:id="@+id/person_photo"
+                android:layout_width="150dp"
+                android:layout_height="150dp"
+                android:scaleType="centerCrop"
+                android:layout_alignParentLeft="true"
+                android:layout_alignParentTop="true"
+                android:layout_marginRight="16dp" />
+
+
+            <TextView
+                android:id="@+id/person_name"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_alignParentTop="true"
+                android:layout_toRightOf="@+id/person_photo"
+                android:textSize="30sp" />
+
+            <TextView
+                android:id="@+id/person_age"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_below="@+id/person_name"
+                android:layout_toRightOf="@+id/person_photo" />
+
+        </RelativeLayout>
+
+    </android.support.v7.widget.CardView>
+
+</LinearLayout>
+                    
+//activity/frament layout
+ <android.support.v7.widget.RecyclerView
+        android:id="@+id/my_recycler_view"
+        android:scrollbars="vertical"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"/>
+
+// MyAdapter
+package hr.bioplanet.bioplanet.adapters;
+
+import android.support.v7.widget.RecyclerView;
+import android.support.v7.widget.CardView;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+import com.android.volley.toolbox.ImageLoader;
+import com.android.volley.toolbox.NetworkImageView;
+
+import java.util.List;
+
+import hr.bioplanet.bioplanet.MainActivity;
+import hr.bioplanet.bioplanet.R;
+import hr.bioplanet.bioplanet.app.AppController;
+import hr.bioplanet.bioplanet.models.Recipe;
+
+/**
+ * Created by josip.bozic on 19.1.2016..
+ */
+public class MyAdapter extends RecyclerView.Adapter<MyAdapter.RecipeViewHolder>{
+
+    public static class RecipeViewHolder extends RecyclerView.ViewHolder {
+        CardView cv;
+        TextView name;
+        TextView description;
+        NetworkImageView photo;
+
+        RecipeViewHolder(View itemView) {
+            super(itemView);
+            cv = (CardView)itemView.findViewById(R.id.cv);
+            name = (TextView)itemView.findViewById(R.id.person_name);
+            description = (TextView)itemView.findViewById(R.id.person_age);
+            photo = (NetworkImageView )itemView.findViewById(R.id.person_photo);
+        }
+    }
+
+    List<Recipe> list;
+
+    public MyAdapter(List<Recipe> list){
+        this.list = list;
+    }
+
+    @Override
+    public int getItemCount() {
+        return list.size();
+    }
+
+    @Override
+    public RecipeViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
+        View v = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.cv_example, viewGroup, false);
+        RecipeViewHolder pvh = new RecipeViewHolder(v);
+        return pvh;
+    }
+
+    @Override
+    public void onBindViewHolder(RecipeViewHolder personViewHolder, int i) {
+        personViewHolder.name.setText(list.get(i).getName());
+        personViewHolder.description.setText(list.get(i).getDescription());
+        ImageLoader imageLoader = AppController.getInstance().getImageLoader();
+        personViewHolder.photo.setImageUrl(list.get(i).getPicture(), imageLoader);
+    }
+
+    @Override
+    public void onAttachedToRecyclerView(RecyclerView recyclerView) {
+        super.onAttachedToRecyclerView(recyclerView);
+    }
+
+}
+
+
+// Activity.. 
+// onCreate...
+mRecyclerView = (RecyclerView) findViewById(R.id.my_recycler_view);
+
+        // use this setting to improve performance if you know that changes
+        // in content do not change the layout size of the RecyclerView
+        mRecyclerView.setHasFixedSize(true);
+
+        // use a linear layout manager
+        mLayoutManager = new LinearLayoutManager(this);
+        mRecyclerView.setLayoutManager(mLayoutManager);
+
+        getData();
+
+// getData
+private void getData(){
+        String tag_json_obj = "gson_obj_req";
+
+        String url = "http://someurl/api/mobile/recipes?populate=types&populate=tags&enabled=1";
+
+        GsonRequest<Recipe[]> jsonObjReq = new GsonRequest<>(
+                url,
+                Recipe[].class,
+                null,
+                new Response.Listener<Recipe[]>() {
+
+                    @Override
+                    public void onResponse(Recipe[] response) {
+                        recipes = Arrays.asList(response);
+                        mAdapter = new MyAdapter(recipes);
+                        mRecyclerView.setAdapter(mAdapter);
+                    }
+                }, new Response.ErrorListener() {
+
+            @Override
+            public void onErrorResponse(VolleyError error) {
+                VolleyLog.d(TAG, "Error: " + error.getMessage());
+                // hide the progress dialog
+            }
+        });
+
+        AppController.getInstance().addToRequestQueue(jsonObjReq, tag_json_obj);
+    }
+                 
+