Cara Berpindah Activity Menggunakan RecyclerView
Assalamualaikum Warahmatullahi Wabarakatuh.
Pada kesempatan kali ini saya akan mengajarkan pada kalian, bagaimana cara berpindah dari satu activity ke activity lainnya, pada RecyclerView, jika kalian menggunakan RecyclerView untuk Aplikasi Android pastinya didalam RecyclerView tersebut terdapat daftar item yang bisa diakses oleh user.
Jika kita ingin membuat aksi/event pada masing-masing item tersebut, saat user mengklik salah satu item dari list, maka akan berpindah pada activity lain, sesuai dengan nama item yang dikliknya, jadi setiap item didalam RecylerView mempunyai activity berbeda beda.
Materi Lainnya Yang Harus Kalian Pelajari:
- Belajar Menggunakan ArrayList pada Java
- Belajar Cara Membuat ListView pada Android Studio
- Tutorial Membuat RecyclerView dan OnClickListener
Tutorial berikut ini mengikuti contoh pada tutorial sebelumnya, seperti desgn, nama activity, dan juga source codenya.
A.Membuat Design Layout RecyclerView
compile 'com.android.support:appcompat-v7:26.1.0'
compile 'com.android.support:design:26.1.0'
compile 'com.android.support:recyclerview-v7:26.1.0'
compile 'com.android.support:support-v4:26.1.0'
2) Selanjutnya kita design layout untuk RecyclerView kita, buat layout baru, dengan nama view_design.xml, di res/layout, layout tersebut digunakan untuk mengatur tampilan desain per-itemnya, tampilan desainnya akan kita buat seperti ini:
Kalian dapat membuatnya menggunakan kode xml, seperti berikut ini:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/item_list"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="8dp"
android:orientation="vertical">
<ImageView
android:id="@+id/meme"
android:layout_width="70dp"
android:layout_height="70dp"
android:layout_marginEnd="8dp"
android:layout_marginRight="8dp"
android:contentDescription="@string/todo"
app:srcCompat="@drawable/meme1" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="70dp"
android:layout_toEndOf="@+id/meme"
android:layout_toRightOf="@+id/meme"
android:gravity="center"
android:orientation="vertical">
<TextView
android:id="@+id/memetitle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="2dp"
android:text="Wildan"
android:textSize="18sp"
android:textStyle="bold" />
<TextView
android:id="@+id/sub_meme"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="2dp"
android:text="Gambar Meme Ke: 0"
android:textSize="14sp" />
</LinearLayout>
</RelativeLayout>
3) Selanjutnya kita akan membuat sebuah class bernama RecyclerViewAdapter, adapter tersebut akan kita gunakan untuk mengatur data model yang akan ditampilkan pada RecyclerView dan juga didalamnya terdapat ViewHolder yang digunakan untuk menyimpan view-view yang akan di gunakan pada item, view-view disini bisa berupa ImageView, TextView, EditText, Dll.
package android.cianjur.developer.net.recyclerviewexample;
import android.content.Context;
import android.content.Intent;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.TextView;
import java.util.ArrayList;
//Class Adapter ini Digunakan Untuk Mengatur Bagaimana Data akan Ditampilkan
public class RecyclerViewAdapter extends RecyclerView.Adapter<RecyclerViewAdapter.ViewHolder>{
private ArrayList<String> arrayList; //Digunakan untuk Judul
private ArrayList<Integer> memeList; //Digunakan untuk Image/Gambar
RecyclerViewAdapter(ArrayList<String> arrayList, ArrayList<Integer> memeList){
this.arrayList = arrayList;
this.memeList = memeList;
}
//ViewHolder Digunakan Untuk Menyimpan Referensi Dari View-View
class ViewHolder extends RecyclerView.ViewHolder{
private TextView JudulMeme, SubMeme;
private ImageView Meme;
private RelativeLayout ItemList;
private Context context;
ViewHolder(View itemView) {
super(itemView);
//Untuk Menghubungkan dan Mendapakan Context dari MainActivity
context = itemView.getContext();
//Menginisialisasi View-View untuk kita gunakan pada RecyclerView
JudulMeme = itemView.findViewById(R.id.memetitle);
SubMeme = itemView.findViewById(R.id.sub_meme);
Meme = itemView.findViewById(R.id.meme);
ItemList = itemView.findViewById(R.id.item_list);
ItemList.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent();
switch (getAdapterPosition()){
case 0 :
intent = new Intent(context, meme1.class);
break;
case 1 :
intent = new Intent(context, meme2.class);
break;
}
context.startActivity(intent);
}
});
}
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
//Membuat View untuk Menyiapkan dan Memasang Layout yang Akan digunakan pada RecyclerView
View V = LayoutInflater.from(parent.getContext()).inflate(R.layout.view_design, parent, false);
ViewHolder VH = new ViewHolder(V);
return VH;
}
@Override
public void onBindViewHolder(ViewHolder holder, final int position) {
//Memasukan Nilai/Value Pada View-View Yang Telah Dibuat
final String Nama = arrayList.get(position);//Mengambil data sesuai dengan posisi yang telah ditentukan
holder.JudulMeme.setText(Nama);
holder.SubMeme.setText("Gambar Meme Ke: "+position);
holder.Meme.setImageResource(memeList.get(position)); // Mengambil gambar sesuai posisi yang telah ditentukan
}
@Override
public int getItemCount() {
//Menghitung Ukuran/Jumlah Data Yang Akan Ditampilkan Pada RecyclerView
return arrayList.size();
}
}
Selain menggunakan OnClickListener(), untuk berpindah activity, kita memerlikan sebuah Context dari MainActivity yang akan kita gunakan untuk berpindah activity pada fungsi Intent().Selanjutnya kita menggunakan fungsi getAdapterPosition() untuk mendapatkan posisi dari Daftar Item yang di klik user pada MainActivity.Pada contoh tersebut kita hanya berpindah pada 2 activity yang berbeda saja, yaitu meme1 dan meme2.
4) Buka file activity_main.xml kalian, disini kita akan menambahkan RecyclerView, seperti berikut ini:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
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"
android:layout_margin="8dp"
tools:context="android.cianjur.developer.net.recyclerviewexample.MainActivity">
<android.support.v7.widget.RecyclerView
android:id="@+id/recycler"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scrollbars="vertical">
</android.support.v7.widget.RecyclerView>
</RelativeLayout>
Terakhir buka MainActiviy.java, lalu masukan source code berikut ini:
package android.cianjur.developer.net.recyclerviewexample;
import android.support.v4.content.ContextCompat;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.DefaultItemAnimator;
import android.support.v7.widget.DividerItemDecoration;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import java.util.ArrayList;
public class MainActivity extends AppCompatActivity {
private RecyclerView recyclerView;
private RecyclerView.Adapter adapter;
private RecyclerView.LayoutManager layoutManager;
private ArrayList<String> JudulMeme;
private ArrayList<Integer> GambarMeme;
//Daftar Judul
private String[] Judul = {"Wildan", "Taufan"};
//Daftar Gambar
private int[] Gambar = {R.drawable.meme1, R.drawable.meme2};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
JudulMeme = new ArrayList<>();
GambarMeme = new ArrayList<>();
recyclerView = findViewById(R.id.recycler);
DaftarItem();
//Menggunakan Layout Manager, Dan Membuat List Secara Vertical
layoutManager = new LinearLayoutManager(this);
recyclerView.setLayoutManager(layoutManager);
recyclerView.setHasFixedSize(true);
recyclerView.setItemAnimator(new DefaultItemAnimator());
adapter = new RecyclerViewAdapter(JudulMeme, GambarMeme);
//Memasang Adapter pada RecyclerView
recyclerView.setAdapter(adapter);
}
//Mengambil data dari Varibale Gambar dan Judul, lalu memasangnya pada list yang terhubung dengan Class Adapter
private void DaftarItem(){
for (int w=0; w<Judul.length; w++){
GambarMeme.add(Gambar[w]);
JudulMeme.add(Judul[w]);
}
}
}
Terimakasih atas kunjungannya, semoga tutorial yang saya berikan bisa bermanfaat untuk kalian semua, selebihnya, mohon maaf bila ada kesalahan.
Wassalamualaikum Warahmatullahi Wabarakatuh.
Posting Komentar untuk "Cara Berpindah Activity Menggunakan RecyclerView"