Langkah 1
Buatlah project dengan nama TutorialRecyclerView pada Xamarin anda.
Langkah 2
Untuk membuat RecyclerView kita membutuhkan komponen dengan nama Android Support Library V7 Recycler View. Untuk mengunakannya anda harus menginstal komponen tersebut pada folder Component -> Klik Kanan -> Get More Component lalu cari dengan nama Recycler View. Instal dan tunggu hingga selesai.
Langkah 3
Bukalah file Main.axml lalu tambahkan RecyclerView sehingga code menjadi seperti berikut
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<android.support.v7.widget.RecyclerView
android:id="@+id/recyclerView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scrollbars="vertical" />
</LinearLayout>
Kita menambahkan sebuah recyclerview dengan ID = recyclerView
Langkah 3
Buatlah sebuah file baru pada layout folder dengan nama row.axml lalu isikan code sebagai berikut
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="75dp"
android:minWidth="25px"
android:minHeight="25px"
android:padding="5dp"
android:weightSum="100"
android:id="@+id/linearLayout1"
android:showDividers="none"
android:background="#ff1565c0"
android:layout_marginTop="1dp">
<LinearLayout
android:orientation="vertical"
android:minWidth="25px"
android:minHeight="25px"
android:layout_weight="70"
android:layout_height="70dp"
android:layout_width="0dp"
android:id="@+id/linearLayout2"
android:padding="5dp">
<TextView
android:text="XamarinID"
android:textAppearance="?android:attr/textAppearanceSmall"
android:layout_width="255.5dp"
android:layout_height="wrap_content"
android:id="@+id/txtUsername"
android:textStyle="bold"
android:textSize="@dimen/item_touch_helper_max_drag_scroll_per_frame"
android:textColor="#ffffffff" />
<TextView
android:text="xamarinindonesia@gmail.com"
android:textAppearance="?android:attr/textAppearanceSmall"
android:layout_width="265.0dp"
android:layout_height="wrap_content"
android:id="@+id/txtEmail"
android:textColor="#ffffee58" />
<TextView
android:text="0821-0989-0000"
android:textAppearance="?android:attr/textAppearanceSmall"
android:layout_width="262.0dp"
android:layout_height="wrap_content"
android:id="@+id/txtTelepon"
android:textSize="10dp"
android:textColor="#ffffebee" />
</LinearLayout>
<LinearLayout
android:orientation="vertical"
android:minWidth="25px"
android:minHeight="25px"
android:layout_weight="30"
android:layout_height="60dp"
android:layout_width="0dp"
android:id="@+id/linearLayout3">
<TextView
android:text="15s"
android:textAppearance="?android:attr/textAppearanceSmall"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/txtTime"
android:textStyle="bold"
android:textSize="12sp"
android:textColor="#ffffffff"
android:layout_marginBottom="7.5dp" />
<CheckBox
android:text="Pilih"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/checkBox1"
android:textColor="#ffffffff" />
</LinearLayout>
</LinearLayout>
pada row.axml ini kita custom tampilan dari list tersebut, kita memanfaatkan weightSum agar layout dapat kita modifikasi dengan mudah.
Langkah 4
Buatlah sebuah class baru dengan nama Anggota.cs lalu masukan code sebagai berikut
using System;
namespace TutorialRecyclerView
{
public class Anggota
{
public Anggota()
{
}
public string Username { get; set;}
public string Email { get; set; }
public string Telepon { get; set; }
}
}
Pada Class ini kita akan menampung 3 buah data variable yaitu Username, Email dan Telepon.
Langkah 5
Bukalah kembali file MainActivity.cs lalu ubah codenya menjadi sebagai berikut
using System;
using Android.App;
using Android.Runtime;
using Android.Views;
using Android.Widget;
using Android.OS;
using Android.Support.V7.Widget;
using System.Collections.Generic;
namespace TutorialRecyclerView
{
[Activity(Label = "RecyclerViewTutorial", MainLauncher = true)]
public class MainActivity : Activity
{
private RecyclerView mRecyclerView;
private RecyclerView.LayoutManager mLayoutManager;
private RecyclerView.Adapter mAdapter;
private List<Anggota> mAnggotas;
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
// Set our view from the "main" layout resource
SetContentView(Resource.Layout.Main);
mRecyclerView = FindViewById<RecyclerView>(Resource.Id.recyclerView);
mAnggotas = new List<Anggota>();
mAnggotas.Add(new Anggota() { Username = "Ipung Purwono", Email = "xamarinid@gmail.com",Telepon = "08978987675" });
mAnggotas.Add(new Anggota() { Username = "Miguel De Izaza", Email = "deicaza@gmail.com", Telepon = "089784546465" });
mAnggotas.Add(new Anggota() { Username = "Ipung Purwono", Email = "ipungofficial@gmail.com", Telepon = "04678987675" });
mAnggotas.Add(new Anggota() { Username = "Mark Zukenberg", Email = "markfabook@gmail.com", Telepon = "08788788675" });
mAnggotas.Add(new Anggota() { Username = "Bill Gates", Email = "gatesbill@gmail.com", Telepon = "0897887875" });
mAnggotas.Add(new Anggota() { Username = "Ipung Purwono", Email = "xamarinid@gmail.com", Telepon = "08978987675" });
mAnggotas.Add(new Anggota() { Username = "Miguel De Izaza", Email = "deicaza@gmail.com", Telepon = "089784546465" });
mAnggotas.Add(new Anggota() { Username = "Ipung Purwono", Email = "ipungofficial@gmail.com", Telepon = "04678987675" });
mAnggotas.Add(new Anggota() { Username = "Mark Zukenberg", Email = "markfabook@gmail.com", Telepon = "08788788675" });
mAnggotas.Add(new Anggota() { Username = "Bill Gates", Email = "gatesbill@gmail.com", Telepon = "0897887875" });
//Create our layout manager
mLayoutManager = new LinearLayoutManager(this);
mRecyclerView.SetLayoutManager(mLayoutManager);
mAdapter = new RecyclerAdapter(mAnggotas);
mRecyclerView.SetAdapter(mAdapter);
}
}
public class RecyclerAdapter : RecyclerView.Adapter
{
private List<Anggota> mAnggotas;
public RecyclerAdapter(List<Anggota> anggotas)
{
mAnggotas = anggotas;
}
public class MyView : RecyclerView.ViewHolder
{
public View mMainView { get; set; }
public TextView mUsername { get; set; }
public TextView mEmail { get; set; }
public TextView mTelepon { get; set; }
public MyView(View view) : base(view)
{
mMainView = view;
}
}
public override RecyclerView.ViewHolder OnCreateViewHolder(ViewGroup parent, int viewType)
{
View row = LayoutInflater.From(parent.Context).Inflate(Resource.Layout.row, parent, false);
TextView txtUsername = row.FindViewById<TextView>(Resource.Id.txtUsername);
TextView txtEmail = row.FindViewById<TextView>(Resource.Id.txtEmail);
TextView txtTelepon = row.FindViewById<TextView>(Resource.Id.txtTelepon);
MyView view = new MyView(row) {mUsername=txtUsername, mEmail = txtEmail, mTelepon = txtTelepon };
return view;
}
public override void OnBindViewHolder(RecyclerView.ViewHolder holder, int position)
{
MyView myHolder = holder as MyView;
myHolder.mUsername.Text = mAnggotas[position].Username;
myHolder.mEmail.Text = mAnggotas[position].Email;
myHolder.mTelepon.Text = mAnggotas[position].Telepon;
}
public override int ItemCount
{
get { return mAnggotas.Count; }
}
}
}
Sebagai penjelasan adalah sebagai berikut
private RecyclerView mRecyclerView; private RecyclerView.LayoutManager mLayoutManager; private RecyclerView.Adapter mAdapter; private List<Anggota> mAnggotas;
Buatlah variable yang akan menampung data yang akan ditampilkan pada RecyclerView
//Create our layout manager mLayoutManager = new LinearLayoutManager(this); mRecyclerView.SetLayoutManager(mLayoutManager); mAdapter = new RecyclerAdapter(mAnggotas); mRecyclerView.SetAdapter(mAdapter);
Kemudian kita membuat agar layout yaitu row bisa menampung data adapter RecyclerView
public class RecyclerAdapter : RecyclerView.Adapter
{
private List<Anggota> mAnggotas;
public RecyclerAdapter(List<Anggota> anggotas)
{
mAnggotas = anggotas;
}
public class MyView : RecyclerView.ViewHolder
{
public View mMainView { get; set; }
public TextView mUsername { get; set; }
public TextView mEmail { get; set; }
public TextView mTelepon { get; set; }
public MyView(View view) : base(view)
{
mMainView = view;
}
}
public override RecyclerView.ViewHolder OnCreateViewHolder(ViewGroup parent, int viewType)
{
View row = LayoutInflater.From(parent.Context).Inflate(Resource.Layout.row, parent, false);
TextView txtUsername = row.FindViewById<TextView>(Resource.Id.txtUsername);
TextView txtEmail = row.FindViewById<TextView>(Resource.Id.txtEmail);
TextView txtTelepon = row.FindViewById<TextView>(Resource.Id.txtTelepon);
MyView view = new MyView(row) {mUsername=txtUsername, mEmail = txtEmail, mTelepon = txtTelepon };
return view;
}
public override void OnBindViewHolder(RecyclerView.ViewHolder holder, int position)
{
MyView myHolder = holder as MyView;
myHolder.mUsername.Text = mAnggotas[position].Username;
myHolder.mEmail.Text = mAnggotas[position].Email;
myHolder.mTelepon.Text = mAnggotas[position].Telepon;
}
public override int ItemCount
{
get { return mAnggotas.Count; }
}
}
Kita membuat adapter yang memanggil data Class Anggota.cs yang sudah kita buat sebelumnya
mRecyclerView = FindViewById<RecyclerView>(Resource.Id.recyclerView);
mAnggotas = new List<Anggota>();
mAnggotas.Add(new Anggota() { Username = "Ipung Purwono", Email = "xamarinid@gmail.com",Telepon = "08978987675" });
mAnggotas.Add(new Anggota() { Username = "Miguel De Izaza", Email = "deicaza@gmail.com", Telepon = "089784546465" });
mAnggotas.Add(new Anggota() { Username = "Ipung Purwono", Email = "ipungofficial@gmail.com", Telepon = "04678987675" });
mAnggotas.Add(new Anggota() { Username = "Mark Zukenberg", Email = "markfabook@gmail.com", Telepon = "08788788675" });
mAnggotas.Add(new Anggota() { Username = "Bill Gates", Email = "gatesbill@gmail.com", Telepon = "0897887875" });
mAnggotas.Add(new Anggota() { Username = "Ipung Purwono", Email = "xamarinid@gmail.com", Telepon = "08978987675" });
mAnggotas.Add(new Anggota() { Username = "Miguel De Izaza", Email = "deicaza@gmail.com", Telepon = "089784546465" });
mAnggotas.Add(new Anggota() { Username = "Ipung Purwono", Email = "ipungofficial@gmail.com", Telepon = "04678987675" });
mAnggotas.Add(new Anggota() { Username = "Mark Zukenberg", Email = "markfabook@gmail.com", Telepon = "08788788675" });
mAnggotas.Add(new Anggota() { Username = "Bill Gates", Email = "gatesbill@gmail.com", Telepon = "0897887875" });
Kemudian kita masukan data pada RecyclerView.
Terimakasih
Ipung Purwono
No comments:
Post a Comment
Mohon melakukan komentar dengan bahasa yang mudah dipahami, santun dan dengan bahasa yang baik.