[Tutorial Lanjutan] Cara Membuka Beda-Beda Activity Pada Item RecyclerView di Android Studio

Tutorial Cara Berpindah Beda-Beda Activity Pada Item RecyclerView di Android Studio

Android Rion – Halo Coders, Bagaimana codingan kalian hari ini? Sudahkah ada yang diselesaikan? Saya harap kalian cepat menyelesaikannya. Pada kesempatan kali ini, Saya akan membagikan Tutorial Cara Membuka Beda Activity Pada Item RecyclerView di Android Studio.

Tutorial ini adalah tutorial lanjutan dari tutorial sebelumnya yaitu:

  1. Cara Membuat Custom RecyclerView untuk Menampilkan Gambar dan Teks di Android Studio.
  2. Cara Menambahkan Method SetOnClickListener Pada RecyclerView di Android Studio

Jadi, untuk kalian yang ingin mengikuti tutorial ini sebaiknya kalian mempelajari terlebih dahulu tutorial sebelumnya agar mudah untuk mengerti.

Kenapa dalam judul artikel ini saya mengunakan kata activity yang berbeda-beda? itu dikarenakan bahwa sebenarnya ada cara untuk membuka activity ketika item RecyclerView di klik hanya menggunakan satu activity saja. Dan cara itu akan saya bagikan setelah tutorial ini saya posting.

Sebelum kita terjun ke politik kodingan. Saya akan menjelaskan terlebih dahulu sedikit tentang tutorial ini. Dalam tutorial ini kalian akan belajar cara membuka activity baru yang berbeda-beda dari setiap item pada RecyclerView ketika di klik dengan menggunakan method setOnClickListener. Method ini telah saya bagikan tutorialnya, kalian bisa mengklik tautan di atas pada nomor dua. Jadi, untuk memahami tutorial di bawah ini, kalian juga harus mempelajari method tersebut.

Cara Membuka Beda-Beda Activity Pada Item RecyclerView di Android Studio

Seperti yang telah saya tulis pada judul bahwa tutorial ini adalah tutorial lanjutan. Jadi, kita tidak akan membuat project baru untuk mengikuti tutorial ini. Kalian cukup mengikuti tutorial sebelumnya dengan cara mengklik tautan di bawah ini.

Apabila kalian sudah membuat project yang sama seperti pada tutorial di atas, maka kalian bisa mengikuti tutorial di bawah ini. Jika kalian mengalami kesulitan dalam mengerjakan tutorial sebelumnya, kalian bisa mendownload project yang sudah selesai yang telah saya cantumkan di bawah pada artikel tersebut.

Daftar file xml layout yang digunakan dalam project ini:

  1. activity_main.xml [tutorial sebelumnya]
  2. list_item.xml [tutorial sebelumnya]
  3. activity_facebook.xml [tutorial lanjutan]
  4. activity_instagram.xml [tutorial lanjutan]

Daftar file java yang digunakan dalam project ini:

  1. MainActivity.java [tutorial sebelumnya]
  2. MyItem.java [tutorial sebelumnya]
  3. ItemModel.java [tutorial sebelumnya]
  4. AdapterRecyclerView.java [tutorial sebelumnya + perbarui]
  5. FacebookActivity.java [tutorial lanjutan]
  6. InstagramActivity.java [tutorial lanjutan]

Kalian bisa lihat pada daftar file yang digunakan bahwa untuk membuka activity baru pada item RecyclerView tidaklah begitu sulit. Kalian hanya perlu membuat activity baru dan mengedit file adapter nya saja. Dibawah ini adalah langkah-langkah dalam pembuatan aplikasi RecyclerView App.

XML Layout File

Buatlah activity baru pada project android studio kalian dengan cara klik kanan pada folder layout, lalu kalian pilih New>Activity>Empty Activity. Di dalam tutorial ini, saya membuat 2 activity baru dengan memberi nama file tersebut dengan nama activity_facebook dan activity_instagram. Untuk membedakan dari kedua file layout tersebut, saya tambahkan TextView di masing-masing layout dan di beri text yang sesuai dengan nama file layout. Berikut ini adalah kode lengkap dari file activity_facebook.xml dan activity_instagram.xml

app/res/layout/activity_facebook.xml

<?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"
    tools:context=".FacebookActivity">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:text="Facebook"
        android:textAppearance="@style/TextAppearance.AppCompat.Headline" />

</RelativeLayout>

app/res/layout/activity_instagram.xml

<?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"
    tools:context=".InstagramActivity">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:text="Instagram"
        android:textAppearance="@style/TextAppearance.AppCompat.Headline" />
</RelativeLayout>

File Java Activity

Dengan dibuatnya dua layout activity baru. Secara otomatis, file java dari dua layout baru pun dibuat dengan nama FacebookActivity.java dan InstagramActivity.java. Kedua file tersebut tidak perlu kita tambahkan kode didalamnya. Tapi kita perlu menambahkan kode pada file AdapterRecyclerView.java. Berikut ini adalah kode lengkap untuk file AdapterRecyclerView.java

app/res/java/com.androidrion.recyclerviewapp/AdapterRecyclerView.java

package com.androidrion.recyclerviewapp;

import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;

import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;

import com.google.android.material.snackbar.Snackbar;

import java.util.ArrayList;

public class AdapterRecyclerView extends RecyclerView.Adapter<AdapterRecyclerView.ViewHolder> {

    private final ArrayList<ItemModel> dataItem;

    private final Context mContext;

    static class ViewHolder extends RecyclerView.ViewHolder {

        TextView textHead;
        TextView textSubhead;
        ImageView imageIcon;
        LinearLayout parentLayout;

        ViewHolder(View v) {

            super(v);

            textHead = v.findViewById(R.id.text_headline);
            textSubhead = v.findViewById(R.id.text_subhead);
            imageIcon = v.findViewById(R.id.imageList);
            parentLayout = v.findViewById(R.id.parent_layout);

        }
    }

    AdapterRecyclerView(Context context, ArrayList<ItemModel> data) {

        this.dataItem = data;
        mContext = context;
    }

    @NonNull
    @Override
    public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {

        View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.list_item, parent, false);

        return new ViewHolder(view);
    }

    @Override
    public void onBindViewHolder(ViewHolder holder, int position) {

        TextView textHead = holder.textHead;
        TextView textSubhead = holder.textSubhead;
        ImageView imageIcon = holder.imageIcon;

        textHead.setText(dataItem.get(position).getName());
        textSubhead.setText(dataItem.get(position).getType());
        imageIcon.setImageResource(dataItem.get(position).getImage());

        holder.parentLayout.setOnClickListener(v -> {
            Toast.makeText(mContext, dataItem.get(position).getName(), Toast.LENGTH_SHORT).show();
            if (dataItem.get(position).getName().equals("Facebook")) {
                Intent intent = new Intent(mContext, FacebookActivity.class);
                mContext.startActivity(intent);
            }
            if (dataItem.get(position).getName().equals("Instagram")) {
                Intent intent = new Intent(mContext, InstagramActivity.class);
                mContext.startActivity(intent);
            }
        });

    }

    @Override
    public int getItemCount() {

        return dataItem.size();
    }


}

Penjelasan

Dalam method setOnClickListener kita menjalankan condition dimana “Jika dataItem dengan nama Facebook di klik maka FacebookActivity.class dijalankan”. Sama juga halnya dengan dataItem dengan nama Instagram dan seterusnya jika kalian ingin membuatnya. Di sinilah kalian bisa membuat activity yang berbeda-beda untuk masing-masing item pada RecyclerView. Jika item RecyclerView kalian ada sepuluh maka kalian perlu membuat sepuluh layout baru juga untuk masing-masing item pada RecyclerView.

Run ‘app’

Setelah kita menambahkan kode pada file java, sekarang saatnya kita menjalankan projectnya. Ketika aplikasi berjalan dengan lancar, pada tampilan awal kalian akan melihat banyaknya item yang muncul pada RecyclerView. Ketika kalian mengklik item Facebook, Aplikasi akan membuka activity baru yang menampilkan teks Facebook. Hal serupa dengan item Instagram yang membuka activity baru apabila kita mengkliknya. Jika kode diatas tidak terjadi error, maka aplikasi akan terlihat seperti pada gambar di bawah ini.

AKHIR KATA

Itulah tadi tutorial singkat dan mudah Cara Membuka Beda-Beda Activity Pada Item RecyclerView di Android Studio. Apabila kalian mengalami kendala saat melakukan langkah-langkah diatas, silahkan berkomentar di bawah artikel ini. Jangan lupa juga untuk like, comment and subscribe Channel YouTube Android Rion. Semoga artikel ini bisa membantu kalian. Terima kasih.

Download Project

Untuk download project pada tutorial ini, silahkan klik tombol dibawah ini.

Get real time updates directly on you device, subscribe now.

You might also like
Leave A Reply

Your email address will not be published.