[Tutorial Lanjutan] Cara Membuka Satu Activity Untuk Semua Item Pada RecyclerView di Android Studio

Tutorial Cara Berpindah Satu Activity Untuk Menampilkan Semua Item Pada RecyclerView di Android Studio

Halo sobat koding, bagaimana kodingan kalian hari ini? Semoga kalian tetap semangat untuk menulis program. Seperti yang telah saya katakan pada tutorial sebelumnya. Bahwa ada cara dimana ketika item pada RecyclerView di klik maka akan menampilkan atau membuka activity baru yang bisa digunakan pada semua item yang ada pada RecyclerView untuk menghemat memori pada aplikasi yang akan kita buat. Untuk itu, pada kesempatan kali ini saya akan membagikan Tutorial Cara Membuka Satu Activity Untuk Digunakan Pada Semua Item RecyclerView di Android Studio.

Sebelumnya, saya sudah menjelaskan dalam artikel Cara membuka Beda-Beda Activity pada Item RecyclerView. Pada artikel itu juga saya sebutkan bahwa ada cara untuk membuat item RecyclerView hanya membuka satu activity saja untuk semua item yang ditampilkan. Untuk itu saya membuat artikel ini untuk membuktikannya. Jadi, dibawah ini kalian akan belajar cara membuat item recyclerview membuka satu activity menggunakan intent putExtra dan intent getStringExtra.

Tutorial Cara Membuka Satu Activity Untuk Digunakan Pada Semua Item RecyclerView di Android Studio

Seperti yang telah saya tulis pada judul artikel ini. Karena ini adalah tutorial lanjutan, maka dalam tahap awal tutorial ini kita tidak perlu membuat project baru karena kita akan menggunakan project pada tutorial sebelumnya. Kalian bisa mengklik tautan dibawah ini untuk mempelajarinya.

Jika kalian mengalami kesulitan dalam membuat project pada tutorial sebelumnya. Kalian bisa mengunduh project yang telah jadi pada tutorial tersebut. Dibagian bawah artikel sudah saya cantumkan tautan unduh nya agar memudahkan kalian. Setelah kalian membuka project tersebut pada Android Studio kalian, barulah kalian bisa mengikuti tutorial dibawah ini.

Daftar file xml yang digunakan dalam project ini:

  1. activity_main.xml [tutorial sebelumnya]
  2. list_item.xml [tutorial sebelumnya]
  3. activity_default.xml [tutorial lanjutan]

Daftar file java yang digunakan dalam project ini:

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

Kalian bisa lihat di atas daftar file yang di gunakan dan di perbarui kodenya hanya untuk membuat item recyclerview membuka satu activity saja. Tutorial ini tidak begitu sulit kalian pasti mudah memahaminya apabila kalian sudah pernah belajar tentang putExtra dari intent. Kalian bisa mempelajarinya pada Tutorial Cara Mudah Mengirim Data Antar Activity Menggunakan Intent di Android Studio.

Dibawah ini adalah langkah-langkah dalam pembuatan aplikasi RecyclerView App.

XML Layout File

Buatlah file layout baru dengan cara klik kanan pada folder res lalu pilih New>Activity>Empty Activity lalu beri nama file tersebut dengan nama activity_default. Maka secara otomatis akan membuat file layout java dengan nama DefaultActivity. Pada tutorial ini saya akan menampilkan Title dan Icon dari item recyclerview, untuk itu dalam file activity_default.xml saya tambahkan widget TextView dan ImageView. Berikut ini adalah kode lengkap untuk file activity_default.xml

app/res/layout/activity_default.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=".DefaultActivity">

    <ImageView
        android:id="@+id/iv_default"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/tv_default"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="10dp" />

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

DefaultActivity.java file

Buka file DefaultActivity.java dalam folder java, deklarasikan widget yang kita tambahkan pada file layout lalu tambahkan function intent dan gunakan juga getStringExtra seperti pada kode dibawah ini. Berikut adalah kode lengkap nya.

app/java/com.androidrion.recyclerviewapp/DefaultActivity.java

package com.androidrion.recyclerviewapp;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.widget.ImageView;
import android.widget.TextView;

public class DefaultActivity extends AppCompatActivity {

    TextView textDefault;
    ImageView imageDefault;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_default);

        textDefault = findViewById(R.id.tv_default);
        imageDefault = findViewById(R.id.iv_default);

        Intent intent = getIntent();
        String namaAplikasi = intent.getStringExtra("TEKS_DEFAULT");
        int logoAplikasi = intent.getIntExtra("GAMBAR_DEFAULT", 0);

        textDefault.setText(namaAplikasi);
        imageDefault.setImageResource(logoAplikasi);
    }
}

AdapterRecyclerView.java File

Buka file AdapterRecyclerView.java dalam folder java. Di dalam method onBindViewHolder, tambahkan intent ketika kita mengklik item dengan nama yang sesuai. Berikut ini adalah kode lengkap untuk file AdapterRecyclerView.java

app/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;
        this.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, DefaultActivity.class);
                intent.putExtra("TEKS_DEFAULT", "FACEBOOK ACTIVITY");
                intent.putExtra("GAMBAR_DEFAULT", R.drawable.facebook);
                mContext.startActivity(intent);
            } if (dataItem.get(position).getName().equals("Instagram")) {
                Intent intent = new Intent(mContext, DefaultActivity.class);
                intent.putExtra("TEKS_DEFAULT", "INSTAGRAM ACTIVITY");
                intent.putExtra("GAMBAR_DEFAULT", R.drawable.instagram);
                mContext.startActivity(intent);
            }
        });

    }

    @Override
    public int getItemCount() {

        return dataItem.size();
    }


}

Run ‘app’

Setelah kalian menambahkan kode di atas, sekarang jalankan project android studio kalian. Pada tampilan awal aplikasi, kalian akan diperlihatkan beberapa item yang muncul di awal aplikasi. Ketika kalian mengklik Facebook, maka aplikasi akan membuka tampilan baru yang menampilkan nama dan icon item. Dan hal yang sama juga dengan mengklik Instagram. Apabila kode diatas tidak terjadi error, maka aplikasi akan terlihat seperti pada gambar dibawah ini.

AKHIR KATA

Itulah tadi tutorial singkat dan mudah Cara Membuat Item RecyclerView Membuka Satu Activity Menggunakan Intent PutExtra di Android Studio. Apabila kalian mengalami kendala saat melakukan langkah-langkah di atas, kalian bisa berkomentar di bawah pada artikel ini. Jangan lupa untuk like, comment, and subscribe Channel YouTube Android Rion. Semoga artikel di atas bermanfaat untuk kalian semua. 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.