Anda di halaman 1dari 13

MODUL PRAKTIKUM

MOBILE PROGRAMMING I

Pertemuan ke : 13
Materi : RecycleView
Hari/Tanggal : 0..-0..-2023

Materi Pertemuan:
RecyleView, ada hubungan dengan ListView bahkan mirif bedanya lebih kompleks dan customisasi lebih
bagus dan banyak. ListView hanya bisa melakukan satu scrolling maka RecycleView bisa melakukan
beberapa scrolling.

Petemuan kali ini aplikasi RecycleView sederhana:

Caranya:
new project  empty activity  Next
pada configurate:
Name: Recycle View
Package Name: com.buhori.recyleview
Save Location: /home/lxbutton/android bahan ajar/recycleview
Language: java
Minimum SDK: API 16: Android 4.1 (Jelly Bean)
Finish
Pada activity_main.xml:
<? xml version=”1.0” encoding=”utf-8”?>
<LinearLayout xmlns: android=”http://schemas.android.com/apk/..................
android: orientation=”vertical”
xmlns: app=http://schemas.android.com/apk/res-auto
xmlns: tools=http://schemas.android.com/tools
android: layout_width=”match_parent”
android: layout_height=”match_parent”
tools: context=”.MainActivity”>

disini kita masukan RecycleView-nya, caranya?


Palette  Rec  download

android akan menambahkan library recycleview pada

Sekarang kita dapat memasukan recycleview tadi, maka

<android.recycleview.widget.RecycleView
android: id=”@+id/res”
android: layout_width=”match_parent”
android: layout_height=”match_parent”/>
</LinearLayout>

pada kesempatan ini kita buat suatu contoh project, maka kita terlebih dahulu buat class baru, agar
datanya tidak terlalu banyak maka kita buat array saja, kita buat objek dulu, objek akan kita gunakan
sebagai sarana untuk menerima dan mengirim data dari suatu aktifity ke adapter, maka:
Java  com.buhori.recyleview, klik kanan  new  Java class  kasih nama: Objek. sehingga akan
terbuka class activity baru bernama: Objek.java.

Pada Objek.java, Maka:


package com.buhori.recycleview
public class Objek {
String nama=””, alamat=””; Inisialisasi data yang akan digunakan
Objek(String nama, String alamat)  konstruktor objek
{
this.nama=nama;  Deklarasi konstruktor
this.alamat=alamat;
}
kita harus buat objek menjadi get objek, klik kanan disini

kemudian pilih muncul lagi kotak dialog, pilih saja Getter, muncul lagi seperti dibawah dan OK

maka get nya sebagai berikut:


public String getNama() {
return nama;
}
public String getAlamat() {
return alamat;
}
}
Selanjutnya kita perlu membuat lagi custom adapternya, boleh buat class baru atau disatukan pada
MainActivity.java, missal kita satukan pada MainActivity.java ini, maka:
package com.buhori.recycleview
import …
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
maka classnya adalah:
class CustomeAdapter extends RecycleView.Adapter<CustomeAdapter.Holderku> kls dalam kelas
{
pada holderku, klik kanan tekan Alt+enter terus create class “holderku”, maka:

hasilnya:
public class Holderku {
}
}

Berikutnya, sebelum berlanjut kita buat dulu layout:


res  layout, pada layout ini klik kanan  new  Layout resource file  buat class, maka
setelah di ok, akan aktif class list_item.xml, maka:
<?xml version=”1.0” encoding=”utf-8”?>
<LinearLayout xmlns: android=”http://schemas.android.com/apk/..................
android: orientation=”vertical”
android: padding=”20dp”
android: layout_width=”match_parent”
android: layout_height=”match_parent”>
<TextView
android: text=”{nama}”
android: id=”@+id/nama”
android: layout_width=”match_parent”
android: layout_height=”wrap_content”/>
<TextView
android: text=”{alamat}”
android: id=”@+id/alamat”
android: layout_width=”match_parent”
android: layout_height=”wrap_content”/>
</LinearLayout>

selanjutnya kita kembali ke CustomAdapter lagi (diatas, pada MainActivity.java):


package com.buhori.recycleview;
import …
public class MainActivity extends AppCompatActivity {

RecycleView recycleview;
ArrayList<Objek> list;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R. layout.activity_main);
tambah data(); Menampilkan customadapter lis dibawah (list)
recycleView=findViewById(R.id.res);
CustomeAdapter adapter=new CustomeAdapter(getApplicationContext(), list);
recycleView.setLayoutManager(new LinearLayoutManager(context this));
recycleView.setAdapter(adapter);
}
void tambah data()
{
list=new Array<Objek>();
list.add(new Objek(nama: “Buhori”, alamat: “Kota Pagaralam, Provinsi Sumatera Selatan”));
list.add(new Objek(nama: “Desi Rahayu”, alamat: “Kota Pagaralam, Provinsi Sumatera Selatan”));
list.add(new Objek(nama: “Fajar”, alamat: “Kota Pagaralam, Provinsi Sumatera Selatan”));
list.add(new Objek(nama: “Bejah”, alamat: “Kota Pagaralam, Provinsi Sumatera Selatan”));
list.add(new Objek(nama: “Hamzah”, alamat: “Kota Pagaralam, Provinsi Sumatera Selatan”));
list.add(new Objek(nama: “Sartono”, alamat: “Kota Pagaralam, Provinsi Sumatera Selatan”));
}
}

class CustomeAdapted extends RecycleView.Adapter<CustomeAdapter.Holderku>


{
Recycleklik listener;

LayoutInflater inflater;
Context context;
ArrayList<Objek> model;  Objek
CustomAdapter(Context context, ArrayList<Objek> list)  konstruktor
{
this.context=context;
this.model=list
inflater=LayoutInflater.from(context);
}
@NonNull Implementasi metode (cara)
@Override
public Holderku onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view=inflater.inflater(R.layout.list_item, root: null);
returm new Holderku (view);
}

@Override
public void onBindViewHolder(@NonNull Holderku holder, int position) {
holder.nama.setText(model.get(position).getNama());
holder.alamat.setText(model.get(position).getAlamat());
}

@Override
public int getItemCount() {
returm mode.size();
}
interface Recycleklik {  buat dulu ipen createnya
void onKlikItem(View view, int pososis);
}

void setKliklistener (Recycleklik recycleklik)


{
this.listener=recycleklik;
}

public class Holderku extends RecycleView.ViewHolder {


TextView nama, alamat;
Holderku(View view)  Konstruktor error butuh super, maka
{
super(view);

nama=view.findViewById(R.id.nama);
alamat=view.findViewById(R.id.alamat);
view.setTag(view);

view.setOnClickListener(new View.OnClickListener () {
@Override
public void onClick(View view) {
if(lister!=null)lister.onKlikItem(view, getAdapterPosition());
}
});
}
}
}
Silahkan Coba Running
selanjutnya jika kita ingin mendapatkan data pada data yang kita klik?
package com.buhori.recycleview;
import …
public class MainActivity extends AppCompatActivity {

RecycleView recycleview;
ArrayList<Objek> list;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R. layout.activity_main);
tambah data(); Menampilkan customadapter lis dibawah (list)
recycleView=findViewById(R.id.res);
CustomeAdapter adapter=new CustomeAdapter(getApplicationContext(), list);
recycleView.setLayoutManager(new LinearLayoutManager(context this));
recycleView.setAdapter(adapter);

adapter.setKliklistener(new CustomeAdapter.Recycleklik {
@Override
public void onKlikItem(View view, int pososis) {
Toast.makeText(context:MainActivity.this, list.get(pososis).getNama(), Toast.LENGTH SHORT).show();
}
})
}
void tambah data()
{
list=new Array<Objek>();
list.add(new Objek(nama: “Buhori”, alamat: “Kota Pagaralam, Provinsi Sumatera Selatan”));
list.add(new Objek(nama: “Desi Rahayu”, alamat: “Kota Pagaralam, Provinsi Sumatera Selatan”));
list.add(new Objek(nama: “Fajar”, alamat: “Kota Pagaralam, Provinsi Sumatera Selatan”));
list.add(new Objek(nama: “Bejah”, alamat: “Kota Pagaralam, Provinsi Sumatera Selatan”));
list.add(new Objek(nama: “Hamzah”, alamat: “Kota Pagaralam, Provinsi Sumatera Selatan”));
list.add(new Objek(nama: “Sartono”, alamat: “Kota Pagaralam, Provinsi Sumatera Selatan”));
}
}

class CustomeAdapted extends RecycleView.Adapter<CustomeAdapter.Holderku>


{
Recycleklik listener;

LayoutInflater inflater;
Context context;
ArrayList<Objek> model;  Objek
CustomAdapter(Context context, ArrayList<Objek> list)  konstruktor
{
this.context=context;
this.model=list
inflater=LayoutInflater.from(context);
}
@NonNull Implementasi metode (cara)
@Override
public Holderku onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view=inflater.inflater(R.layout.list_item, root: null);
returm new Holderku (view);
}

@Override
public void onBindViewHolder(@NonNull Holderku holder, int position) {
holder.nama.setText(model.get(position).getNama());
holder.alamat.setText(model.get(position).getAlamat());
}

@Override
public int getItemCount() {
returm mode.size();
}

interface Recycleklik {  buat dulu ipen createnya


void onKlikItem(View view, int pososis);
}

void setKliklistener (Recycleklik recycleklik)


{
this.listener=recycleklik;
}

public class Holderku extends RecycleView.ViewHolder {


TextView nama, alamat;
Holderku(View view)  Konstruktor error butuh super, maka
{
super(view);

nama=view.findViewById(R.id.nama);
alamat=view.findViewById(R.id.alamat);
view.setTag(view);

view.setOnClickListener(new View.OnClickListener () {
@Override
public void onClick(View view) {
if(lister!=null)lister.onKlikItem(view, getAdapterPosition());
}
});
}
}
}
maka

selanjutnya scrolling horizontal


pertama kita ke activity_main.xml
<? xml version=”1.0” encoding=”utf-8”?>
<LinearLayout xmlns: android=”http://schemas.android.com/apk/..................
android: orientation=”vertical”
xmlns: app=http://schemas.android.com/apk/res-auto
xmlns: tools=http://schemas.android.com/tools
android: layout_width=”match_parent”
android: layout_height=”match_parent”
tools: context=”.MainActivity”>
<android.recycleview.widget.RecycleView
android: scrollbars=”horizontal”
android: id=”@+id/res”
android: layout_width=”match_parent”
android: layout_height=”match_parent”/>
</LinearLayout>

kemudian pada MainActivity.java


package com.buhori.recycleview;
import …
public class MainActivity extends AppCompatActivity {
RecycleView recycleview;
ArrayList<Objek> list;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R. layout.activity_main);
tambah data(); Menampilkan customadapter lis dibawah (list)
recycleView=findViewById(R.id.res);
CustomeAdapter adapter=new CustomeAdapter(getApplicationContext(), list);
recycleView.setLayoutManager(new LinearLayoutManager(context this, LinearLayoutManager.Horizontal,
reverseLayout:false));
recycleView.setAdapter(adapter);

adapter.setKliklistener(new CustomeAdapter.Recycleklik {
@Override
public void onKlikItem(View view, int pososis) {
Toast.makeText(context:MainActivity.this, list.get(pososis).getNama(), Toast.LENGTH SHORT).show();
}
})
}
void tambah data()
{
list=new Array<Objek>();
list.add(new Objek(nama: “Buhori”, alamat: “Kota Pagaralam, Provinsi Sumatera Selatan”));
list.add(new Objek(nama: “Desi Rahayu”, alamat: “Kota Pagaralam, Provinsi Sumatera Selatan”));
list.add(new Objek(nama: “Fajar”, alamat: “Kota Pagaralam, Provinsi Sumatera Selatan”));
list.add(new Objek(nama: “Bejah”, alamat: “Kota Pagaralam, Provinsi Sumatera Selatan”));
list.add(new Objek(nama: “Hamzah”, alamat: “Kota Pagaralam, Provinsi Sumatera Selatan”));
list.add(new Objek(nama: “Sartono”, alamat: “Kota Pagaralam, Provinsi Sumatera Selatan”));
}
}

class CustomeAdapted extends RecycleView.Adapter<CustomeAdapter.Holderku>


{
Recycleklik listener;

LayoutInflater inflater;
Context context;
ArrayList<Objek> model;  Objek
CustomAdapter(Context context, ArrayList<Objek> list)  konstruktor
{
this.context=context;
this.model=list
inflater=LayoutInflater.from(context);
}
@NonNull Implementasi metode (cara)
@Override
public Holderku onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view=inflater.inflater(R.layout.list_item, root: null);
returm new Holderku (view);
}

@Override
public void onBindViewHolder(@NonNull Holderku holder, int position) {
holder.nama.setText(model.get(position).getNama());
holder.alamat.setText(model.get(position).getAlamat());
}

@Override
public int getItemCount() {
returm mode.size();
}

interface Recycleklik {  buat dulu ipen createnya


void onKlikItem(View view, int pososis);
}

void setKliklistener (Recycleklik recycleklik)


{
this.listener=recycleklik;
}

public class Holderku extends RecycleView.ViewHolder {


TextView nama, alamat;
Holderku(View view)  Konstruktor error butuh super, maka
{
super(view);

nama=view.findViewById(R.id.nama);
alamat=view.findViewById(R.id.alamat);
view.setTag(view);

view.setOnClickListener(new View.OnClickListener () {
@Override
public void onClick(View view) {
if(lister!=null)lister.onKlikItem(view, getAdapterPosition());
}
});
}
}
}
maka hasilnya
SELAMAT MENCOBA

Anda mungkin juga menyukai