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.
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”>
<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.
kemudian pilih muncul lagi kotak dialog, pilih saja Getter, muncul lagi seperti dibawah dan OK
hasilnya:
public class Holderku {
}
}
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”));
}
}
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);
}
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”));
}
}
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();
}
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
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”));
}
}
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();
}
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