Blog Tutorial Android Bagi Pemula

Friday, June 5, 2020

Membuat Intent Share Social Media di Android Studio

Opsi Share Social Media

Dengan adanya opsi share ini pada sebuah aplikasi, tentu sedikit banyak dapat membantu perluasan aplikasi tersebut. Untuk penerapan intent share ini tidak begitu ribet, juga tidak terlalu banyak kodingan yang diperlukan.


cara membuat share social media android studio
Gambar 1 : Icon Social Media

Pada tutorial ini, akan dibuat intent share untuk 5 media sosial terpopuler saat ini, yaitu : Facebook, Instagram, Whatsapp, Twitter dan Google Plus. Walaupun untuk Google Plus sudah tidak tersedia lagi bagi konsumen pribadi dan bisnis sejak Desember 2018. Di contoh yang akan dibuat ini, akan menggunakan icon dari masing-masing Social Network. Sebagian mungkin bukan icon resminya, namun kurang lebih hampir sama. Icon-icon tersebut di unduh dari website flaticon.com. Untuk tutorial menggunakan icon dari luar Android Studio, Anda bisa melihatnya di artikel ini.


Persiapkan 5 icon terlebih dahulu. Anda bisa mendownloadnya dari website flaticon tersebut dan memilih icon yang Anda inginkan atau mengikuti contoh icon tutorial ini. Pada kolom pencarian website tersebut ketikkan nama icon yang diinginkan. Untuk lebih jelasnya bisa dilihat pada postingan ini. Jika ingin sedikit lebih cepat, silahkan langsung download saja icon dari tutorial ini.

Setelah icon-icon nya di download, ekstrak terlebih dahulu lalu salin kelima icon tersebut. Buka Android Studio, perluas folder res lalu klik kanan pada folder drawable dan pilih Paste. Disini kita akan menggunakan <ImageView untuk menempatkan icon-icon tersebut. Dan keberadaan nya di layout activity_main.xml.

Membuat Intent Share Social Media

Buka activity_main.xml. Seperti biasa, layout utama yang digunakan adalah RelativeLayout (Ini mungkin karna kebiasaan). Ke-5 ImageView yang akan dibuat ditempatkan pada sebuah layout child, yaitu LinearLayout dengan orientasi horizontal. Berikut lengkapnya yang dibuat pada activity_main.xml dari package com.gwnbs.proyekpertama :

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/kata2_mutiara"
        android:textSize="20sp"
        android:gravity="center"
        android:layout_marginTop="20dp"/>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:orientation="horizontal"
        android:layout_alignParentBottom="true"
        android:layout_marginBottom="30dp"
        android:background="@color/lightBlue">
        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/ic_facebook"
            android:layout_marginRight="20dp"
            android:layout_marginEnd="20dp"
            android:background="?android:attr/selectableItemBackground"
            tools:ignore="ContentDescription"
            android:onClick="shareToFacebook"/>
        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/ic_twitter"
            android:layout_marginRight="20dp"
            android:layout_marginEnd="20dp"
            android:background="?android:attr/selectableItemBackground"
            tools:ignore="ContentDescription"
            android:onClick="shareToTwitter"/>
        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/ic_google_plus"
            android:layout_marginRight="20dp"
            android:layout_marginEnd="20dp"
            android:background="?android:attr/selectableItemBackground"
            tools:ignore="ContentDescription"
            android:onClick="shareToGooglePlus"/>
        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/ic_instagram"
            android:layout_marginRight="20dp"
            android:layout_marginEnd="20dp"
            android:background="?android:attr/selectableItemBackground"
            tools:ignore="ContentDescription"
            android:onClick="shareToInstagram"/>
        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/ic_whatsapp"
            android:background="?android:attr/selectableItemBackground"
            tools:ignore="ContentDescription"
            android:onClick="shareToWhatsapp"/>
    </LinearLayout>

</RelativeLayout>

Jika Anda yang masih belum lama di dunia Android bingung dengan atribut-atribut pada setiap komponen diatas, Anda bisa menelusuri postingan-postingan di blog ini untuk menemukan jawaban dari kebingungan tersebut. Karena juga saya sendiri membahasnya tidak dalam 1 artikel khusus, mungkin nanti akan dibuat artikel khusus untuk membahas atribut-atribut.

Baik. Pada setiap komponen <ImageView kode diatas, semua atribut android:onClick akan di tandai garis warna merah. Itu karna metode onClick nya belum dibuat di aktivitas java dari layout activity_main.xml. Arahkan mouse kepada setiap atribut warna merah tersebut lalu klik ALT+Enter, kemudian pilih create shareToFacebook(View)' in 'MainActivity'. Hal itu akan membuat metode untuk atribut onClick tersebut di MainActivity.java.

Cara membuat metode onClick dari layout
Gambar 2 : Cara membuat metode onClick dari layout

Lakukan hal yang sama untuk keempat lainnya. Setiap kali melakukannya, Anda akan diarahkan ke MainActivity.java untuk diperlihatkan metode yang di buat, lalu Anda kembali lagi ke layout activity_main.xml untuk yang lainnya. Setelah semua nya dibuat, kembali ke MainActivity.java untuk mengimplementasikan intent share pada semua metode yang telah dibuat.

Masukkan intent berikut ini di dalam metode shareToFacebook (View view) :

Intent fb = new Intent(Intent.ACTION_SEND);
fb.setType("text/plain");
fb.putExtra(Intent.EXTRA_TEXT,
        "Kunjungi blog Belajar Android " + "http://gwnbs.com");
fb.setPackage("com.facebook.katana");
startActivity(fb);

Intent berikut ini untuk metode shareToTwitter (View view) :

try {
            Intent twit = new Intent(Intent.ACTION_SEND);
            twit.setType("text/plain");
            twit.putExtra(Intent.EXTRA_TEXT,
                    "Kunjungi blog Belajar Android " +
                            "http://gwnbs.com");
            twit.setPackage("advanced.twitter.android");
            startActivity(twit);
        } catch (Exception e) {
            Toast toast = Toast.makeText(this, "Download" +
                    " app twitter terlebih dahulu",
                    Toast.LENGTH_SHORT);
            toast.setGravity(Gravity.CENTER, 0, 0);
            toast.show();
        }

Kemudian Intent dibawah ini untuk metode shareToGooglePlus (View view) :

try {
        Intent gp = new Intent(Intent.ACTION_SEND);
        gp.setType("text/plain");
        gp.putExtra(Intent.EXTRA_TEXT,
                "Kunjungi blog Belajar Android " +
                "http://gwnbs.com");
        gp.setPackage("com.google.android.apps.plus");
        startActivity(gp);
        } catch (Exception e) {
           Toast toast = Toast.makeText(this, "Download" +
                            " app Google+ terlebih dahulu",
                    Toast.LENGTH_SHORT);
            toast.setGravity(Gravity.CENTER, 0, 0);
            toast.show();
        }

Intent berikut untuk metode shareToInstagram (View view) :

Intent ig = new Intent(Intent.ACTION_SEND);
ig.setType("text/plain");
ig.putExtra(Intent.EXTRA_TEXT,
        "Kunjungi blog Belajar Android " + "http://gwnbs.com");
ig.setPackage("com.instagram.android");
startActivity(ig);

Dan terakhir untuk metode shareToWhatsapp (View view) :

Intent wa = new Intent(Intent.ACTION_SEND);
wa.setType("text/plain");
wa.putExtra(Intent.EXTRA_TEXT,
         "Kunjungi blog Belajar Android " + "http://gwnbs.com");
wa.setPackage("com.whatsapp");
startActivity(wa);

Dan Berikut kode lengkap MainActivity.java dari com.gwnbs.proyekpertama :

package com.gwnbs.proyekpertama;
import android.content.Intent;
import android.os.Bundle;
import android.view.Gravity;
import android.view.View;
import android.widget.Toast;

import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {

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

    public void shareToFacebook(View view) {
        Intent fb = new Intent(Intent.ACTION_SEND);
        fb.setType("text/plain");
        fb.putExtra(Intent.EXTRA_TEXT,
                "Kunjungi blog Belajar Android " +
                "http://gwnbs.com");
        fb.setPackage("com.facebook.katana");
        startActivity(fb);
    }

    public void shareToTwitter(View view) {
        try {
            Intent twit = new Intent(Intent.ACTION_SEND);
            twit.setType("text/plain");
            twit.putExtra(Intent.EXTRA_TEXT,
                    "Kunjungi blog Belajar Android " +
                            "http://gwnbs.com");
            twit.setPackage("advanced.twitter.android");
            startActivity(twit);
        } catch (Exception e) {
            Toast toast = Toast.makeText(this, "Download" +
                    " app twitter terlebih dahulu",
                    Toast.LENGTH_SHORT);
            toast.setGravity(Gravity.CENTER, 0, 0);
            toast.show();
        }
    }

    public void shareToGooglePlus(View view) {
        try {
        Intent gp = new Intent(Intent.ACTION_SEND);
        gp.setType("text/plain");
        gp.putExtra(Intent.EXTRA_TEXT,
                "Kunjungi blog Belajar Android " +
                "http://gwnbs.com");
        gp.setPackage("com.google.android.apps.plus");
        startActivity(gp);
        } catch (Exception e) {
           Toast toast = Toast.makeText(this, "Download" +
                            " app Google+ terlebih dahulu",
                    Toast.LENGTH_SHORT);
            toast.setGravity(Gravity.CENTER, 0, 0);
            toast.show();
        }
    }

    public void shareToInstagram(View view) {
        Intent ig = new Intent(Intent.ACTION_SEND);
        ig.setType("text/plain");
        ig.putExtra(Intent.EXTRA_TEXT,
                "Kunjungi blog Belajar Android " +
                "http://gwnbs.com");
        ig.setPackage("com.instagram.android");
        startActivity(ig);
    }

    public void shareToWhatsapp(View view) {
        Intent wa = new Intent(Intent.ACTION_SEND);
        wa.setType("text/plain");
        wa.putExtra(Intent.EXTRA_TEXT,
                "Kunjungi blog Belajar Android " +
                "http://gwnbs.com");
        wa.setPackage("com.whatsapp");
        startActivity(wa);
    }
}

Menguji Share

Beberapa intent share seperti GooglePlus dan Twitter tidak akan bekerja jika tidak memiliki aplikasinya terinstall di smartphone Android. Sebuah pesan toast akan muncul di aktivitas utama yang meminta untuk mendownload aplikasinya terlebih dahulu. Pada bagian Intent.EXTRA_TEXT di setiap metode diatas, disanalah Anda meletakkan alamat URL dari link download aplikasi Anda.

Pada contoh demo video dibawah ini, intent GooglePlus dan Twitter tidak bekerja karena saya tidak punya aplikasinya. Baiklah, sekian dan terima kasih. Jika ada pertanyaan silahkan post di kolom komentar dibawah.


Share:

0 comments:

Post a Comment

Hubungi Saya

Name

Email *

Message *

Terlaris 30 Hari Terakhir