{"id":828,"date":"2018-12-23T06:46:12","date_gmt":"2018-12-22T23:46:12","guid":{"rendered":"https:\/\/luckytruedev.com\/learning\/?p=828"},"modified":"2019-09-21T22:26:11","modified_gmt":"2019-09-21T15:26:11","slug":"pengenalan-android-advanced-recycler-view","status":"publish","type":"post","link":"https:\/\/luckytruedev.com\/learning\/pengenalan-android-advanced-recycler-view\/","title":{"rendered":"Pengenalan Android Advanced Recycler View"},"content":{"rendered":"\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/luckytruedev.com\/learning\/wp-content\/uploads\/2018\/12\/Android-RecyclerView-How-it-works-1024x576.png\" alt=\"\" class=\"wp-image-829\" srcset=\"https:\/\/luckytruedev.com\/learning\/wp-content\/uploads\/2018\/12\/Android-RecyclerView-How-it-works-1024x576.png 1024w, https:\/\/luckytruedev.com\/learning\/wp-content\/uploads\/2018\/12\/Android-RecyclerView-How-it-works-300x169.png 300w, https:\/\/luckytruedev.com\/learning\/wp-content\/uploads\/2018\/12\/Android-RecyclerView-How-it-works-768x432.png 768w, https:\/\/luckytruedev.com\/learning\/wp-content\/uploads\/2018\/12\/Android-RecyclerView-How-it-works-110x62.png 110w, https:\/\/luckytruedev.com\/learning\/wp-content\/uploads\/2018\/12\/Android-RecyclerView-How-it-works-420x236.png 420w, https:\/\/luckytruedev.com\/learning\/wp-content\/uploads\/2018\/12\/Android-RecyclerView-How-it-works-764x430.png 764w, https:\/\/luckytruedev.com\/learning\/wp-content\/uploads\/2018\/12\/Android-RecyclerView-How-it-works-20x11.png 20w, https:\/\/luckytruedev.com\/learning\/wp-content\/uploads\/2018\/12\/Android-RecyclerView-How-it-works.png 2000w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption>Android Recycler View (Gambar Google Images)<\/figcaption><\/figure><\/div>\n\n\n\n<p>Class RecyclerView mendukung tampilan kumpulan data. Ini menerapkan gaya pemrograman yang menghasilkan kinerja yang baik. <\/p>\n\n\n<div id=\"lucky-976138078\"><script async src=\"\/\/pagead2.googlesyndication.com\/pagead\/js\/adsbygoogle.js?client=ca-pub-5605825534849002\" crossorigin=\"anonymous\"><\/script><ins class=\"adsbygoogle\" style=\"display:block;\" data-ad-client=\"ca-pub-5605825534849002\" \ndata-ad-slot=\"5317815257\" \ndata-ad-format=\"auto\" data-full-width-responsive=\"true\"><\/ins>\n<script> \n(adsbygoogle = window.adsbygoogle || []).push({}); \n<\/script>\n<\/div>\n\n\n<p>Ini juga dilengkapi dengan animasi default untuk menghapus dan menambahkan elemen. RecyclerView memungkinkan untuk menggunakan manajer tata letak yang berbeda untuk memposisikan item. Menggunakan ViewHolder untuk menyimpan referensi ke tampilan untuk satu entri dalam tampilan RecyclerView. <\/p>\n\n\n\n<p>Adaptor mengelola model data dan menyesuaikannya dengan entri individual di widget. Ini memperluas kelas RecyclerView.Adapter dan ditugaskan ke tampilan recyclerview melalui metode RecyclerView.setAdapter().<\/p>\n\n\n\n<p>Adaptor menyiapkan tata letak item dengan menggembungkan tata letak yang benar untuk elemen data individual.  Pekerjaan ini dilakukan dengan metode onCreateViewHolder. Ini mengembalikan objek tipe ViewHolder per entri visual pada tampilan recyclerview. <\/p>\n\n\n<div id=\"lucky-969800025\"><script async src=\"\/\/pagead2.googlesyndication.com\/pagead\/js\/adsbygoogle.js?client=ca-pub-5605825534849002\" crossorigin=\"anonymous\"><\/script><ins class=\"adsbygoogle\" style=\"display:block;\" data-ad-client=\"ca-pub-5605825534849002\" \ndata-ad-slot=\"3760179245\" \ndata-ad-format=\"auto\" data-full-width-responsive=\"true\"><\/ins>\n<script> \n(adsbygoogle = window.adsbygoogle || []).push({}); \n<\/script>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\">Contoh Penerapan Recycler view<\/h2>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/luckytruedev.com\/learning\/wp-content\/uploads\/2018\/12\/Picture1-5.png\" alt=\"\" class=\"wp-image-830\" width=\"263\" height=\"68\" srcset=\"https:\/\/luckytruedev.com\/learning\/wp-content\/uploads\/2018\/12\/Picture1-5.png 550w, https:\/\/luckytruedev.com\/learning\/wp-content\/uploads\/2018\/12\/Picture1-5-300x78.png 300w, https:\/\/luckytruedev.com\/learning\/wp-content\/uploads\/2018\/12\/Picture1-5-110x29.png 110w, https:\/\/luckytruedev.com\/learning\/wp-content\/uploads\/2018\/12\/Picture1-5-420x109.png 420w, https:\/\/luckytruedev.com\/learning\/wp-content\/uploads\/2018\/12\/Picture1-5-20x5.png 20w\" sizes=\"auto, (max-width: 263px) 100vw, 263px\" \/><figcaption>Contoh<\/figcaption><\/figure><\/div>\n\n\n\n<pre class=\"wp-block-syntaxhighlighter-code brush: plain; notranslate\">\/\/ Sintaks untuk membuat gambar diatas, ketikan ini kedalam layout kalian (misal activity_main.xml)\n\n&lt;RelativeLayout xmlns:android=\"http:\/\/schemas.android.com\/apk\/res\/android\" android:layout_width=\"fill_parent\" android:layout_height=\"?android:attr\/listPreferredItemHeight\" android:padding=\"6dip\" >\n &lt;ImageView android:id=\"@+id\/icon\" android:layout_width=\"wrap_content\" android:layout_height=\"fill_parent\" android:layout_alignParentBottom=\"true\" android:layout_alignParentTop=\"true\" android:layout_marginRight=\"6dip\" android:contentDescription=\"TODO\" android:src=\"@drawable\/ic_launcher\" \/>\n\n &lt;TextView android:id=\"@+id\/secondLine\" android:layout_width=\"fill_parent\" android:layout_height=\"26dip\" android:layout_alignParentBottom=\"true\" android:layout_alignParentRight=\"true\" android:layout_toRightOf=\"@id\/icon\" android:ellipsize=\"marquee\" android:singleLine=\"true\" android:text=\"Description\" android:textSize=\"12sp\" \/> \n\n&lt;TextView android:id=\"@+id\/firstLine\" android:layout_width=\"fill_parent\" android:layout_height=\"wrap_content\" android:layout_above=\"@id\/secondLine\" android:layout_alignParentRight=\"true\" android:layout_alignParentTop=\"true\" android:layout_alignWithParentIfMissing=\"true\" android:layout_toRightOf=\"@id\/icon\" android:gravity=\"center_vertical\" android:text=\"Example application\" android:textSize=\"16sp\" \/>\n &lt;\/RelativeLayout><\/pre>\n\n\n\n<p>Latihan berikut menunjukkan bagaimana cara menggunakannya <strong>RecyclerView<\/strong><br><br><strong>Tingkat ketergantungan terhadap penggunaan recylerview<\/strong> Widget RecyclerView dikirim sebagai library dan dapat digunakan sebagai API 7 level atau lebih tinggi. Tambahkan ketergantungan ke versi terbaru perpustakaan ini ke file build Gradle Anda untuk menggunakannya. <\/p>\n\n\n\n<pre class=\"wp-block-syntaxhighlighter-code brush: plain; notranslate\">dependencies {\n    ...\n    compile \"com.android.support:recyclerview-v7:25.1.1\"\n}<\/pre>\n\n\n\n<p>1.Buat proyek dan tambahkan ketergantungan Gradle Tambahkan ketergantungan yang diperlukan ke file build Gradle Anda. Lihat ketergantungan Gradle untuk menggunakan tampilan recyclerview untuk rinciannya. <br><br>2. Membuat File Layout Buat atau perbarui file tata letak yang disebut <strong>activity_main.xml <\/strong>sehingga berisi .<\/p>\n\n\n\n<pre class=\"wp-block-syntaxhighlighter-code brush: plain; notranslate\">&lt;RelativeLayout xmlns:android=\"http:\/\/schemas.android.com\/apk\/res\/android\"\n    xmlns:tools=\"http:\/\/schemas.android.com\/tools\"\n    android:layout_width=\"match_parent\"\n    android:layout_height=\"match_parent\"\n    tools:context=\"${relativePackage}.${activityClass}\" >\n\n    &lt;android.support.v7.widget.RecyclerView\n        android:id=\"@+id\/my_recycler_view\"\n        android:layout_width=\"match_parent\"\n        android:layout_height=\"match_parent\"\n        android:scrollbars=\"vertical\" \/>\n\n    &lt;ImageView\n        android:id=\"@+id\/imageView1\"\n        android:layout_width=\"wrap_content\"\n        android:layout_height=\"wrap_content\"\n        android:layout_alignParentBottom=\"true\"\n        android:layout_alignParentRight=\"true\"\n        android:layout_marginBottom=\"12dp\"\n        android:layout_marginRight=\"12dp\"\n        android:elevation=\"2dp\"\n        android:src=\"@drawable\/ic_add_circle\" \/>\n\n&lt;\/RelativeLayout><\/pre>\n\n\n\n<p>Membuat Layout baru untuk digunakan di setiap item (rowlayout.xml) :<\/p>\n\n\n\n<pre class=\"wp-block-syntaxhighlighter-code brush: plain; notranslate\">&lt;RelativeLayout xmlns:android=\"http:\/\/schemas.android.com\/apk\/res\/android\"\n    android:layout_width=\"fill_parent\"\n    android:layout_height=\"?android:attr\/listPreferredItemHeight\"\n    android:padding=\"6dip\" >\n    &lt;ImageView\n        android:id=\"@+id\/icon\"\n        android:layout_width=\"wrap_content\"\n        android:layout_height=\"fill_parent\"\n        android:layout_alignParentBottom=\"true\"\n        android:layout_alignParentTop=\"true\"\n        android:layout_marginRight=\"6dip\"\n        android:contentDescription=\"TODO\"\n        android:src=\"@drawable\/ic_launcher\" \/>\n\n    &lt;TextView\n        android:id=\"@+id\/secondLine\"\n        android:layout_width=\"fill_parent\"\n        android:layout_height=\"26dip\"\n        android:layout_alignParentBottom=\"true\"\n        android:layout_alignParentRight=\"true\"\n        android:layout_toRightOf=\"@id\/icon\"\n        android:ellipsize=\"marquee\"\n        android:singleLine=\"true\"\n        android:text=\"Description\"\n        android:textSize=\"12sp\" \/>\n\n    &lt;TextView\n        android:id=\"@+id\/firstLine\"\n        android:layout_width=\"fill_parent\"\n        android:layout_height=\"wrap_content\"\n        android:layout_above=\"@id\/secondLine\"\n        android:layout_alignParentRight=\"true\"\n        android:layout_alignParentTop=\"true\"\n        android:layout_alignWithParentIfMissing=\"true\"\n        android:layout_toRightOf=\"@id\/icon\"\n        android:gravity=\"center_vertical\"\n        android:text=\"Example application\"\n        android:textSize=\"16sp\" \/>\n&lt;\/RelativeLayout><\/pre>\n\n\n\n<p>Membuat Class Adapter (MyAdapter.java).<\/p>\n\n\n\n<pre class=\"wp-block-syntaxhighlighter-code brush: plain; notranslate\">public class MyAdapter extends RecyclerView.Adapter&lt;MyAdapter.ViewHolder> {\n        private ArrayList&lt;String> mDataset;\n        public class ViewHolder extends RecyclerView.ViewHolder {\n                public TextView txtHeader;\n                public TextView txtFooter;\n                public ViewHolder(View v) {\n                        super(v);\n                        txtHeader = (TextView) v.findViewById(R.id.firstLine);\n                        txtFooter = (TextView) v.findViewById(R.id.secondLine);               }        }\n        public void add(int position, String item) {\n                mDataset.add(position, item);\n                notifyItemInserted(position);        }\n        public void remove(String item) {\n                int position = mDataset.indexOf(item);\n                mDataset.remove(position);\n                notifyItemRemoved(position);        }\n         public MyAdapter(ArrayList&lt;String> myDataset) {\n                mDataset = myDataset;        }\n  @Override\n        public MyAdapter.ViewHolder onCreateViewHolder(ViewGroup parent,int                                                 \tviewType) {\n                View v = \tLayoutInflater.from(parent.getContext()).inflate(R.layout.rowlayout, \tparent, false);\n                ViewHolder vh = new ViewHolder(v);\n                return vh;        }\n        @Override\n        public void onBindViewHolder(ViewHolder holder, int position) {\n                holder.txtHeader.setText(mDataset.get(position));\n                holder.txtHeader.setOnClickListener(new OnClickListener() {\n                        @Override\n                        public void onClick(View v) {\n                                remove(name);                        }            });\n                holder.txtFooter.setText(\"Footer: \" + mDataset.get(position))   }\n@Override\n        public int getItemCount() {\n                return mDataset.size();\n        }\n}<\/pre>\n\n\n\n<p>Sekarang konfigurasikan recyclerview dalam Activity Anda (MainActivitiy.java).<\/p>\n\n\n\n<pre class=\"wp-block-syntaxhighlighter-code brush: plain; notranslate\">public class MyActivity extends Activity {\n    private RecyclerView mRecyclerView;\n    private RecyclerView.Adapter mAdapter;\n    private RecyclerView.LayoutManager mLayoutManager;\n\n    @Override\n    protected void onCreate(Bundle savedInstanceState) {\n        super.onCreate(savedInstanceState);\n        setContentView(R.layout.activity_main);\n        mRecyclerView = (RecyclerView) findViewById(R.id.my_recycler_view);\n\n        mRecyclerView.setHasFixedSize(true);\n        mLayoutManager = new LinearLayoutManager(this);\n        mRecyclerView.setLayoutManager(mLayoutManager);\n\n        mAdapter = new MyAdapter(myDataset);\n        mRecyclerView.setAdapter(mAdapter);\n    }\n    ...\n}<\/pre>\n\n\n\n<p>Sumber : Master Android (App)<\/p>\n<div id=\"lucky-1497965637\" class=\"lucky-after-content lucky-entity-placement\"><script async src=\"\/\/pagead2.googlesyndication.com\/pagead\/js\/adsbygoogle.js?client=ca-pub-5605825534849002\" crossorigin=\"anonymous\"><\/script><ins class=\"adsbygoogle\" style=\"display:block;\" data-ad-client=\"ca-pub-5605825534849002\" \ndata-ad-slot=\"5317815257\" \ndata-ad-format=\"auto\" data-full-width-responsive=\"true\"><\/ins>\n<script> \n(adsbygoogle = window.adsbygoogle || []).push({}); \n<\/script>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>Class RecyclerView mendukung tampilan kumpulan data. Ini menerapkan gaya pemrograman yang menghasilkan kinerja yang baik. Ini juga dilengkapi dengan animasi default untuk menghapus dan menambahkan elemen. RecyclerView memungkinkan untuk menggunakan manajer tata letak yang berbeda untuk memposisikan item. Menggunakan ViewHolder untuk menyimpan referensi ke tampilan untuk satu entri dalam tampilan RecyclerView. Adaptor mengelola model data [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":829,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[],"class_list":["post-828","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ltdv-android-tutor"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/luckytruedev.com\/learning\/wp-json\/wp\/v2\/posts\/828","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/luckytruedev.com\/learning\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/luckytruedev.com\/learning\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/luckytruedev.com\/learning\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/luckytruedev.com\/learning\/wp-json\/wp\/v2\/comments?post=828"}],"version-history":[{"count":1,"href":"https:\/\/luckytruedev.com\/learning\/wp-json\/wp\/v2\/posts\/828\/revisions"}],"predecessor-version":[{"id":2295,"href":"https:\/\/luckytruedev.com\/learning\/wp-json\/wp\/v2\/posts\/828\/revisions\/2295"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/luckytruedev.com\/learning\/wp-json\/wp\/v2\/media\/829"}],"wp:attachment":[{"href":"https:\/\/luckytruedev.com\/learning\/wp-json\/wp\/v2\/media?parent=828"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/luckytruedev.com\/learning\/wp-json\/wp\/v2\/categories?post=828"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/luckytruedev.com\/learning\/wp-json\/wp\/v2\/tags?post=828"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}