Menggunakan Recyclerview untuk membuat list

Saturday, January 23, 2016 Unknown 0 Comments


jumpa lagi sobat...

Artikel kali ini saya akan membahas mengenai Recyclerview, Recyclerview digunakan untuk membuat list.. Sebulum adanya recyclerview kalau menbuat list menggunakan listview, menurut dokumentasi dari google recyclerview lebih fleksibel daripada listview. untuk perbandinganya bisa dibaca pada link ini 

Ok.. langsung saja kita buat list dengan recyclerview...
agar bisa membuat list dengan recyclerview kita harus menambahkan depencey recyclerview pada app->build.gradle seperti berikut :

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.1.1'
    compile 'com.android.support:design:23.1.1'
    compile 'com.android.support:recyclerview-v7:23.1.1'
}


setalah itu sync gradle dulu sebelum menggunakanya, seteah sync selesai berarti kalian bisa menggunaknya.. selanjut nya buat class model untuk list --> model.java

public class Model {
    String nama, alamat;

    public Model(String nama, String alamat) {
        this.nama = nama;
        this.alamat = alamat;
    }

    public String getNama() {
        return nama;
    }

    public void setNama(String nama) {
        this.nama = nama;
    }

    public String getAlamat() {
        return alamat;
    }

    public void setAlamat(String alamat) {
        this.alamat = alamat;
    }
}


setelah itu kita buat layout dari item list --> layout->item_list.xml seperti dibawah ini :


<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:focusable="true"
    android:paddingLeft="16dp"
    android:paddingRight="16dp"
    android:paddingTop="10dp"
    android:paddingBottom="10dp"
    android:clickable="true"
    android:background="?android:attr/selectableItemBackground">

    <TextView
        android:id="@+id/nameList"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textSize="18sp"
        android:textStyle="bold"
        android:layout_marginStart="20dp"/>
    <TextView
        android:id="@+id/alamatList"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textSize="14sp"
        android:layout_below="@+id/nameList"
        android:layout_marginStart="20dp"/>

</RelativeLayout>


berikutnya letakan recyclerview pada layout yang akan kalian, saya meletakanya pada activity_main.xml bagian content :


<android.support.v7.widget.RecyclerView
            android:id="@+id/recyler"
            android:layout_marginTop="?attr/actionBarSize"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"/>
selanjutnya buat adapter untuk penempatan list_item pada recyclerview --> java->RecyclerviewAdapter.java seperti berikut :


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

import java.util.List;

/**
 * Created by ahmad on 1/23/16.
 */
public class RecyclerAdapter extends RecyclerView.Adapter<RecyclerAdapter.ViewHolder> {
    private List<Model> modelList;

    public RecyclerAdapter(List<Model> modelList) {
        this.modelList = modelList;
    }

    @Override
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(parent.getContext())
                .inflate(R.layout.item_list, parent, false);
        return new ViewHolder(view);
    }

    @Override
    public void onBindViewHolder(ViewHolder holder, int position) {
        Model model = modelList.get(position);
        holder.nama.setText(model.getNama());
        holder.alamat.setText(model.getAlamat());
    }

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

    public class ViewHolder extends RecyclerView.ViewHolder {
        final TextView nama, alamat;

        public ViewHolder(View itemView) {
            super(itemView);
            nama = (TextView) itemView.findViewById(R.id.nameList);
            alamat = (TextView) itemView.findViewById(R.id.alamatList);
        }
    }
}


berikutnya deklarasikan Adapter dan Recyclerview pada class MainActivity.java seperti berikut pada method onCreate :


recyclerView = (RecyclerView) findViewById(R.id.recyler);
        recyclerView.setLayoutManager(new LinearLayoutManager(getApplicationContext()));
        recyclerView.setHasFixedSize(true);
        adapter = new RecyclerAdapter(modelList);
        recyclerView.setAdapter(adapter); 
kita memerlukan data untuk mengisi recyclerview... buat method method list model pada class mainActivity.java  seperti berikut :


private void listModel(){
        Model model;
        model = new Model("ali", "banyuwangi");
        modelList.add(model);
        model = new Model("budi", "blitar");
        modelList.add(model);
        model = new Model("wawan", "jember");
        modelList.add(model);
        model = new Model("riski", "ngawi");
        modelList.add(model);
        model = new Model("alfin", "malang");
        modelList.add(model);
        model = new Model("feri", "kudus");
        modelList.add(model);

        adapter.notifyDataSetChanged();
    }


setelah itu panggil method listMode pada method onCreate agar data bisa muncul....  seperti pada gambar dibawah ini:


Sekian artikel ini semoga bermanfaat.. Apabila ada pertanyaan ataupu saran tulis pada komentar

0 comments: