Blog Tutorial Android Bagi Pemula

Sunday, May 31, 2020

Membuat Popup Menu di Android Studio

Popup Menu Android Studio

Sebelumnya kita sudah membahas mengenai Options Menu, yang terletak pada ActionBar/Toolbar aktivitas sebuah aplikasi. Popup Menu dan Options Menu memiliki makna dan fungsi yang sama, sama-sama memunculkan items saat menu tersebut di klik. Bedanya mungkin, Popup Menu ini fleksibel; bisa ditempatkan dimana saja pada sebuah layout, namun tidak pada ActionBar. Pembahasan mengenai Options Menu dapat dilihat pada postingan ini.

Hal-hal mengenai Options Menu yang tidak dibahas pada artikel ini, berlaku hal yang sama pada Popup Menu. Artinya, akan lebih baik sebelum melakukan pengaplikasian terhadap Popup Menu, untuk menguasai terlebih dahulu Options Menu.

Kita akan menerapkannya pada sebuah Button (tombol); yang mana ketika Button tersebut di klik, akan memunculkan Popup Menu yang berisi item-item. Disini kita akan membuatnya sama dengan pembahasan pada options menu sebelumnya, yaitu 3 item; Share, Feedback dan Exit. Saat item share dipilih akan meluncurkan aksi share, saat Feedback dipilih akan memunculkan aksi umpan balik dan exit yang akan mengakhiri penggunaan aplikasi.

Penerapan Popup Menu

Pertama-tama buatlah sebuah tombol pada activity_main.xml, sesuaikan atribut-atribut mengenai letak, ukuran dan lainnya dengan keinginan dan tambahkan atribut:onClick="showPopupMenu". Pada atribut onClick showPopupMenu tersebut akan digaris bawahi warna merah. Arahkan mouse kepada showPopupMenu yang berwarna merah tersebut lalu klik ALT+Enter, kemudian pada pilihan yang ada pilih "Create "showPopupMenu(View)' in 'MainActivity'. Hal tersebut akan membuat metode baru untuk atribut onClick tersebut pada file java MainActivity.java. Berikut kode lengkap pada activity_main.xml :

<?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:id="@+id/text"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_centerHorizontal="true"
         android:text="@string/text_popup"
         android:textSize="17sp"
         android:layout_marginTop="40dp"
         android:layout_marginBottom="20dp"/>

   <Button
         android:id="@+id/buttonPop"
         android:layout_below="@id/text"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_centerHorizontal="true"
         android:onClick="showPopupMenu"
         android:text="Show Popup Menu"/>

</RelativeLayout>

Selajutnya adalah membuat terlebih dahulu menunya. Pembahasan pada Options Menu di postingan sebelumnya telah mengupas tuntas cara pembuatan sebuah menu lengkap dengan panduan gambar. Disini kita akan membuatnya sama, bedanya hanya pada atribut icon. Pada Popup Menu ini tidak akan diberikan icon; karena memang jika diberi icon juga iconnya tidak muncul (atau mungkin saya yang belum tahu caranya), dan tidak diberikan atribut showAsAction karena kemunculannya bukan di ActionBar. Hanya atribut id dan title pada masing-masing item.

Klik kanan pada folder res > New > Android Resource File. Pada tab konfigurasi, beri nama first_menu, lalu pada Resource type pilih Menu kemudian klik OK. Akan muncul folder baru di dalam folder res, yaitu folder menu yang berisi file xml yaitu first_menu.xml. Buat 3 item yakni Share, Feedback dan Exit di dalam first_menu.xml tersebut. Berikut kode lengkapnya pada first_menu.xml :

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">

     <item


           android:id="@+id/share"
           android:title="Share"/>
     <item
          android:id="@+id/feedback"
          android:title="Feedback"/>
     <item
         android:id="@+id/exit"
         android:title="Exit"/>

</menu>

Langkah selanjutnya adalah coding di MainActivity.java yaitu : Membuat sebuah metode baru yang akan meng inflate menu dan penanganan pada setiap item yang dipilih. Metode ini dibuat diluar metode onCreate. Disini, metode tersebut kita beri nama TunjukkanKeberadaanPopupMenu. Sebelumnya sudah terdapat sebuah metode pada Mainactivity.java yang dibuat tadi melalui activity_main.xml yaitu metode showPopupMenu yang secara otomatis berada di bagian paling dibawah. Kemudian kita akan memasukkan metode TunjukkanKeberadaanPopupMenu di dalam metode showPopupMenu tersebut untuk memunculkan menu saat tombol diklik. Berikut kode lengkap pada MainActivity.java :

package com.example.proyekpertama;

import android.content.ActivityNotFoundException;
import android.content.Intent;
import android.os.Build;
import android.os.Bundle;
import android.view.MenuItem;
import android.view.View;
import android.widget.PopupMenu;
import android.widget.Toast;

import androidx.annotation.RequiresApi;
import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {

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

    /* Meng inflate menu dan memberi penanganan pada setiap item yang dipilih */
    public void TunjukkanKeberadaanPopupMenu(View view) {
        PopupMenu pop = new PopupMenu(this, view);
        pop.inflate(R.menu.first_menu);
        pop.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
            @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN)
            @Override            public boolean onMenuItemClick(MenuItem item) {
                switch (item.getItemId()) {
                    case R.id.share:
                        /*menangani saat Share di klik*/
                        Intent share = new Intent(Intent.ACTION_SEND);
                        share.setType("text/plain");
                        share.putExtra(Intent.EXTRA_SUBJECT,
                                "Download Aplikasinya");
                        share.putExtra(Intent.EXTRA_TEXT,
                                "Ayo segera download" +
                                        "aplikasi kami gratis-tis!!");
                        startActivity(Intent.createChooser(share,
                                "Bagikan Aplikasi ini"));
                        break;

                    case R.id.feedback:
                        /*menangani saat Feedback di klik*/
                        Intent intent = new Intent(Intent.ACTION_SEND);
                        intent.setType("text/plain");
                        intent.putExtra(Intent.EXTRA_EMAIL, new String[]
                                {"gwnbstudio@gmail.com"});
                        intent.putExtra(Intent.EXTRA_CC, new String[]
                                {"birwinecheese@gmail.com"});
                        intent.putExtra(Intent.EXTRA_SUBJECT,
                                "Download App Kami");
                        intent.putExtra(Intent.EXTRA_TEXT,
                                "Hadir! Aplikasi keren dan" +
                                        "Wow.. Segera download di Playstore!");
                        try {
                            startActivity(Intent.createChooser(intent,
                                    "Kirim Feedback"));
                        }
                        catch (ActivityNotFoundException ex) {
                            Toast.makeText(MainActivity.this,
                                    "Dibatalkan",Toast.LENGTH_SHORT).show();
                        }
                        break;

                    case R.id.exit:
                        /*menangani saat Exit di klik*/
                        finishAffinity();
                }
                return true;
            }
        });
        pop.show();
    }
     /* Metode onClick yang dibuat dari Activity_main tadi */
     public void showPopupMenu(View view) {
        /* Memunculkan menu saat tombol di klik */
        TunjukkanKeberadaanPopupMenu(view);
    }
}


Pengujian Popup Menu

Langkah terakhir tentunya menjalankan aplikasi sebagai pengujian. Di bawah ini sebuah video singkat yang memperlihatkan fungsionalitas setiap elemen saat dijalankan dengan Android Smartphone. Jika ada pertanyaan silahkan di posting melalui komentar, atau perantara lain yang bisa dilihat pada halaman Contact.


Share:

Cara Membuat Options Menu di Android Studio

Options Menu Android Studio

Disini akan di bahas cara membuat Options Menu dengan template Empty Activity. Sebenarnya, saat kita membuat sebuah proyek baru, terdapat pilihan template yang sudah memiliki Options Menu, yaitu template Basic Activity. Mungkin karena proyek Anda sudah cukup jauh progressnya sehingga bisa dibilang konyol jika memulai dari awal lagi dengan Basic Activity...
Berikut gambarnya yang menunjukkan keberadaan template tersebut saat dalam proses pembuatan proyek baru :

memilih template basic activity di android studio
Gambar 1 :  Menunjukkan template Basic Activity

Pada pembahasan ini, kita akan membuat Options Menu yang berisi 3 items yaitu : item Share, item Umpan Balik (Feedback), dan item Exit. Pada setiap item yang di klik, implementasinya juga akan dibuat sesuai nama item masing-masing. Jelasnya, saat item Share di klik, maka akan memunculkan aksi share, begitu juga pada Feedback yang akan memunculkan aksi feedback dan Exit yang akan menghakiri aplikasi.

Penerapan Options Menu

Persiapkan project Anda! Jika belum pernah membuat project, bisa melihat pada postingan ini. Seperti biasa, disini saya pakai project proyekpertama.
Pertama-tama tujukan mouse pada folder res, klik kanan pada folder res tersebut lalu pilih New > Android Resource File. Seperti terlihat pada gambar dibawah ini :

panduan membuat android resource filedi android studio
Gambar 2 : Panduan membuat Android Resource File

Kemudian pada File name isikan nama dari menu yang diinginkan, disini kita buat dengan nama first_menu. Pada baris kedua; Resource type pilih Menu pada opsi yang tersedia lalu klik OK. Berikut gambarnya :

cara membuat options menu di android studio
Gambar 3 : Panduan membuat file Menu

Setelah proses diatas, maka pada folder res akan otomatis terbuat subfolder baru yaitu folder menu yang berisi sebuah file xml yaitu first_menu yang dibuat tadi. File first_menu tersebut juga secara otomatis langsung terbuka pada jendela editor. Langkah selanjutnya adalah membuat item-item pada first_menu tersebut. Untuk menambahkan sebuah item adalah dengan tag <item lalu tambahkan atribut android:id dan atribut android:title pada setiap item, kemudian tutup dengan tag </item> atau cukup dengan />.

Untuk 2 item yaitu Share dan Feedback, kita akan menambahkan 2 atribut lagi yaitu app:showAsAction dan android:icon. Fungsi dari atribut app:showAsAction yang kita buat ini adalah untuk menampilkan item tersebut disebelah kanan icon Options Menu, sedangkan android:icon akan memberi icon kepada 2 item tersebut. Sehingga nantinya hanya ada 1 item yaitu item Exit yang ada pada Options Menu. Dan pada item Share dan Feedback tidak akan muncul titlenya melainkan hanya icon karena sudah diletakan disebelah kanan pada Options Menu.

Sebelumnya, kita akan membuat 2 buah icon terlebih dahulu untuk item Share dan item Feedback tersebut. Cara membuat icon adalah dengan memperluas lagi folder res lalu klik kanan pada folder drawable kemudian New > Vector Asset, seperti terlihat pada gambar dibawah :

cara membuat icon vector asset android studio
Gambar 4 :  Panduan membuat icon Vector Asset

Pada baris Name beri nama ic_share, pada baris Clip Art cari icon share dan pada baris Color silahkan pilih warnanya, disini kita pakai warna biru, yang lainnya biarkan apa adanya. Kemudian klik Next lalu klik Finish.

langkah-langkah membuat icon vector asset android studio
Gambar 5 : Panduan membuat icon Vector Asset

Lakukan langkah yang sama untuk icon Feedback, dengan memulainya lagi dari klik kanan folder drawable. Beri nama ic_feedback. Saat memilih icon, agar cepat gunakan mode search; ketikkan share dan feedback saat mencari icon untuk masing-masing item.
Kedua icon yang dibuat tersebut akan berada di dalam folder drawable dengan tipe file xml, yaitu ic_share.xml dan ic_feedback.xml. 
Selanjutnya adalah membuat item-item tersebut di dalam menu first_menu.xml, yang sudah diterangkan diatas sebelumnya. Berikut kode lengkap pada first_menu.xml :

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">

    <item

        android:id="@+id/share"
        android:title="Share"
        android:icon="@drawable/ic_share"
        app:showAsAction="ifRoom"/>

    <item

        android:id="@+id/feedback"
        android:title="Feedback"
        android:icon="@drawable/ic_feedback"
        app:showAsAction="ifRoom"/>

    <item

        android:id="@+id/exit"
        android:title="Exit"/>

</menu>

Disini kita tidak membuat apa-apa pada activity_main.xml. Jadi tidak ada apa-apa disana, hanya layar putih dengan ActionBar yang berisikan label dan Options Menu.
Setelah semua langkah-langkah diatas, langkah berikutnya adalah melakukan coding pada file java MainActivity.java. Dalam file java tersebut sudah dituliskan sedikit penjelasan mengenai masing-masing metode, yang ditandai dengan /*...........*/, Anda hanya perlu sedikit membaca-baca pada kodingan tersebut dan coba untuk memahaminya.
Berikut kode lengkap pada MainActivity.java :

package com.example.proyekpertama;

import android.content.ActivityNotFoundException;
import android.content.Intent;
import android.os.Build;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.widget.Toast;

import androidx.annotation.RequiresApi;
import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {

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

    @Override
    /*Memanggil first_menu agar muncul di activity_main.xml*/
    public boolean onCreateOptionsMenu(Menu menu) {
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.first_menu, menu);
        return true;
    }

    /*menangani saat user mengklik pilihan item pada menu*/
    @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN)
    public boolean onOptionsItemSelected(MenuItem item) {
        if (item.getItemId() ==R.id.share) {

            /*menangani saat Share di klik*/
            Intent share = new Intent(Intent.ACTION_SEND);
            share.setType("text/plain");
            share.putExtra(Intent.EXTRA_SUBJECT,
                    "Download Aplikasinya");
            share.putExtra(Intent.EXTRA_TEXT,
                    "Ayo segera download" +
                    "aplikasi kami gratis-tis!!");
            startActivity(Intent.createChooser(share,
                    "Bagikan Aplikasi ini"));
                return true;
        }

        /*menangani saat Feedback di klik*/
        if (item.getItemId() ==R.id.feedback) {
            Intent intent = new Intent(Intent.ACTION_SEND);
            intent.setType("text/plain");
            intent.putExtra(Intent.EXTRA_EMAIL, new String[]
                    {"gwnbstudio@gmail.com"});
            intent.putExtra(Intent.EXTRA_CC, new String[]
                    {"birwinecheese@gmail.com"});
            intent.putExtra(Intent.EXTRA_SUBJECT,
                    "Download App Kami");
            intent.putExtra(Intent.EXTRA_TEXT,
                    "Hadir! Aplikasi keren dan" +
                    "Wow.. Segera download di Playstore!");
            try {
                startActivity(Intent.createChooser(intent,
                        "Kirim Feedback"));
            }
            catch (ActivityNotFoundException ex) {
                Toast.makeText(MainActivity.this,
                        "Dibatalkan",Toast.LENGTH_SHORT).show();
            }
            return true;
        }

        /*menangani saat Exit di klik*/
        if (item.getItemId() ==R.id.exit) {
            finishAffinity();
        }
        return true;
    }
}


Pengujian Options Menu

Langkah terakhir adalah menguji aplikasi. Berikut dibawah ini video singkat setelah aplikasi dijalankan pada Android Smartphone.
Sekian. Jika ada pertanyaan, silahkan posting di komentar atau hubungi melalui email atau media lain yang dapat dilihat pada halaman Contact.


Share:

Saturday, May 30, 2020

Cara Merubah Package Name di Android Studio

Package Name Android Studio

Mungkin Anda baru saja mendownload sebuah source code dari internet dan ingin merubah package name (nama paket) dari source code tersebut dengan nama yang Anda inginkan. Atau dulunya saat membuat project, Anda asal-asalan membuat nama  paket dan baru terpikir sekarang untuk nama paket yang cocok.  Berikut kurang lebih cara lengkap untuk melakukannya, langkah demi langkah :

Merubah Package Name

Pertama-tama, pastikan project Anda terlihat sebagai Android view, lihat contoh gambar dibawah :

melihat folder sebagai android view di android studio
Gambar 1 : Panduan merubah Package Name

Kemudian pilih folder java dan klik icon gear settings lalu uncheck (hilangkan tanda centang) pada pilihan Compact Middle Packages. Seperti terlihat pada gambar berikut :

cara merubah package name android studio
Gambar 2 : Panduan merubah Package Name

Pada contoh diatas, package name dari project tesebut adalah com.example.proyekpertama. Setelah melakukan langkah-langkah diatas, maka package com.example.proyekpertama akan terpecah menjadi folder-folder, menjadi 3 folder yaitu : com, example dan proyekpertama. Yang mana com sebagai folder utamanya, example sebagai subfolder dari com dan proyekpertama sebagai subfolder dari example.

Sekarang, bagian mana yang ingin dirubah... Kita bisa merubah ketiganya satu-persatu dengan cara memilih folder yang ingin dirubah, kemudian klik kanan pada mouse pilih Refactor > Rename. Seperti dicontohkan pada gambar-gambar dibawah :

langkah-langkah merubah package name di android studio
Gambar 3 : Panduan merubah Package Name

mengganti nama package di android studio
Gambar 4 : Panduan merubah Package Name

mengganti package name di android studio
Gambar 5 : Panduan merubah Package Name

cara mengganti package name android studio
Gambar 6 : Panduan merubah Package Name

Mengatur Ulang Gradle

Lakukan langkah-langkah yang sama jika Anda ingin merubah yang lainnya. Setelah perubahan package name dilakukan, langkah selanjutnya adalah mengganti nama package pada build.gradle (Module: app) dengan nama package yang baru.

Perluas folder Gradle Scripts kemudian double klik pada build.gradle (Module: app). Package name terletak pada bagian defaultConfig. Pada applicationId ganti package name tersebut dengan nama package yang baru. Pada contoh diatas dengan nama paket com.example.proyekpertama, seandainya dirubah ketiganya menjadi net.gwnb.proyekganti, maka pada build.gradle (Module: app) pun harus dirubah menjadi net.gwnb.proyekganti. Berikut contoh gambarnya :

mengganti package name di gradle pada android studio
Gambar 7 : Panduan merubah Package Name

Setelah semua langkah dilakukan, jangan lupa untuk sync ulang gradle. Jika Anda mendapati masalah saat sync gradle offline, coba sync secara online. Aktifkan internet pada komputer Anda, perluas icon gradle yang bertuliskan gradle yang terletak di pojok kanan atas menyamping vertikal,  lalu klik tombol toggle offline mode. Berikut gambar yang menunjukkan letaknya :

cara sync gradle di android studio
Gambar 8 : Menunjukkan letak toggle offline/online sync gradle

Sekian. Jika ada pertanyaan atau sesuatu yang ingin Anda sampaikan, jangan ragu untuk mempostingnya melalui komentar, atau melalui email/media lain yang dapat Anda lihat pada halaman Contact.
Share:

Friday, May 29, 2020

Membuat Alert Dialog di Android Studio

Alert Dialog Android Studio

Buatlah terlebih dahulu sebuah proyek atau melanjutakan proyek yang sudah ada. Lihat pada postingan ini jika Anda belum pernah atau belum tahu cara membuat sebuah proyek.

Alert Dialog muncul secara pop-up pada layar smartphone ketika sebuah tombol atau komponen lainnya di klik. Sebuah Alert Dialog biasanya difungsikan sebagai peringatan atau pemberitahuan. Bisa juga hal-hal lain, semua tergantung kepada si pemilik/pembuat aplikasinya.

Pada contoh dibawah ini kita akan membuat sebuah Alert Dialog yang difungsikan sebagai pemberitahuan mengenai sebuah "syarat dan ketentuan". Berikut sebuah gambar screenshoot contoh sebuah Alert Dialog :

contoh alert dialog di android studio
Gambar 1 : Contoh Alert Dialog

Penerapan Alert Dialog

Disini kita akan mempraktikkannya pada sebuah TextView, ketika teks tersebut di klik akan memunculkan Alert Dialog tentang "syarat dan ketentuan" penggunaan sebuah aplikasi. Pertama-tama setelah proyek dibuat, buatlah sebuah TextView pada activity_main.xml.

Kenapa TextView, Kenapa bukan Button saja? Karena Button sudah pernah dibahas pada postingan tersendiri. Silahkan dilihat pada postingan ini. Disini kita menggunakan TextView sekalian belajar tentang cara membuat event listener pada sebuah TextView.
Berikut kode lengkap pada activity_main.xml :

<?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:id="@+id/textAlert"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_centerHorizontal="true"
      android:layout_marginTop="50dp"
      android:textSize="25sp"
      android:text="Syarat dan Ketentuan"/>

</RelativeLayout>

Selanjutnya adalah membuat event listener untuk TextView tersebut pada java file aktivitas yang di gunakan. Karena kita membuatnya pada activity_main, maka file java aktivitasnya adalah MainActivity.java.

Pertama adalah menemukan id dari TextView diatas menggunakan findViewByid. Kemudian menambahkan event listener dengan setOnClickListener. Setelah menambahkan event listener, secara otomatis akan muncul sebuah metode onClick didalam metode setOnClickListener tersebut (jika diketik secara manual). Dan Alert Dialog dibuat didalam metode onClick tersebut. Berikut kode lengkap pada MainActivity.java :

import android.content.DialogInterface;
import android.os.Build;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;

import androidx.annotation.RequiresApi;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {

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

        /* Mendapatkan id dari TextView */
        TextView tv = findViewById(R.id.textAlert);
        /* Event Listener untuk TextView */
        tv.setOnClickListener(new View.OnClickListener() {
            @Override
            @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN)
            public void onClick(View v) {
                /* Membuat Alert Dialog */
                AlertDialog.Builder ab = new AlertDialog.Builder(MainActivity.this);
                ab.setCancelable(false);
                ab.setMessage(R.string.syarat_ketentuan);
                ab.setPositiveButton("Setuju", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        /* Jika Pengguna mengklik setuju, maka penggunaan aplikasi dilanjut */
                        dialog.cancel();
                    }
                });
                ab.setNegativeButton("Tidak Setuju", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        /* Jika pengguna memilih tidak setuju, Maka akan keluar dari aplikasi */
                        finishAffinity();
                    }
                });
                AlertDialog alert = ab.create();
                alert.show();
            }
        });
    }
}


Catatan : Metode setOnClickListener dibuat didalam metode onCreate.

Pada kode diatas, bagian kalimat untuk "syarat dan ketentuan" telah di buat sebelumnya pada folder value resource, yaitu strings.xml sehingga kita hanya perlu memanggilnya dengan (R.string.syarat_ketentuan);

Folder strings.xml terletak pada res > value > strings.xml. Buka folder strings tersebut lalu tempelkan kalimat berikut didalam tag <resources>. Atau Anda bisa juga membuat kalimat sendiri. Contoh : <string name="syarat_ketentuan">isi kalimat Anda disini</string>

 <string name="syarat_ketentuan">SYARAT DAN KETENTUAN
    \n\nSelamat datang di Aplikasi ini!
        \nSyarat dan Ketentuan ini mengandung hal-hal tentang aturan penggunaan Aplikasi.
        \nDengan menggunakan Aplikasi ini, Anda setuju terhadap syarat dan penggunaan aplikasi. Jika Anda tidak setuju
        terhadap syarat dan ketentuan aplikasi, mohon hapus aplikasi kami dari smartphone Android Anda.
        \n\nAnda dilarang keras :
        \n — Menyalin isi aplikasi dan menyebarkannya.
        \n — Mengekstrak kode sumber aplikasi.
        \n — Menjual konten aplikasi.
        \n\n Dan seterusnya…
    </string>

Arti "\n" pada kalimat diatas adalah seperti enter atau memberi baris baru, seperti <br/> pada HTML. Pembuatan baris baru pada value resources strings adalah seperti itu, "\n".

Menguji Alert Dialog

Selanjutnya adalah menjalankan aplikasi. Berikut video pendek setelah aplikasi dijalankan pada Android Smartphone. Ketika memilih "setuju" aplikasi berlanjut, dan memilih "tidak setuju" penggunaan aplikasi berakhir.
Jika ada pertanyaan atau sesuatu yang ingin Anda sampaikan, jangan ragu! Posting melalui komentar atau melalui media lain yang bisa dilihat pada halaman Contact.


Share:

Thursday, May 28, 2020

Cara Membuat Pesan Toast di Android Studio

Toast Message Android Studio

Toast adalah sebuah pesan notifikasi yang muncul secara pop-up dalam durasi waktu tertentu. Tosat hanya mengisi jumlah ruang yang diperlukan untuk pesan toast tersebut dan aktivitas yang ada tetap terlihat dan interaktif.

Konstanta/tetapan waktu dari class Toast adalah :
public static final int LENGTH_LONG = menampilkan pesan toast dalam durasi waktu yang panjang.
public static final int LENGTH_SHORT = menampilkan pesan toast dalam durasi waktu yang pendek.

Pesan toast dibuat secara terprogram pada java file. Contoh cara membuat pesan Toast :
Context context = getApplicationContext();
CharSquence text = "Ini adalah pesan Toast!"
int duration = Toast.LENGTH_SHORT;
Toast toast = Toast.makeText(context, text, duration);
toast.show();

Terdapat 2 metode yang lebih sederhana untuk membuat sebuah pesan toast, berikut ini :
Toast.makeText(getApplicationContext(), "Ini adalah pesan Toast!", Toast.LENGTH_SHORT).show();
dan
Toast.makeText(this, "Ini adalah pesan Toast!", Toast.LENGTH_SHORT).show();

Pada metode-metode diatas membutuhkan 3 parameter untuk membuat sebuah pesan toast;  yaitu application context (konteks aplikasi), text message (pesan teks untuk toast) dan duration (durasi untuk pesan toast). Lama durasi waktu untuk LENGTH_LONG adalah 3.5 detik, sedangkan LENGHT_SHORT adalah 2 detik.

Posisi standar notifikasi pesan toast muncul pada bagian paling bawah layar smartphone,  ditengah-tengah secara horizontal. Untuk mengubah posisi pada sebuah pesan toast, adalah dengan menambahkan metode setGravity(int, int, int), yang mana terdapat 3 tetapan parameter yaitu  tetapan gravity, posisi offset x dan posisi offset y. Namun, untuk dapat mengkostuminasi posisi nya, terlebih dahulu perlu membuat variabel untuk Toast. Sebagai contoh kita akan memposisikan sebuah pesan toast di pojok kiri atas layar smartphone, maka :

Toast toast = Toast.makeText(this, "Ini adalah pesan Toast", Toast.LENGTH_LONG);
toast.setGravity(Gravity.AXIS_PULL_AFTER, 0, 0);
toast.show();

Untuk contoh posisi lainnya seperti :
(Gravity.TOP, 0, 0);
(Gravity.CENTER, 0, 0);
(Gravity.BOTTOM, 0, 0);
(Gravity.LEFT, 0, 0);
(Gravity.RIGHT, 0, 0);
(Gravity.TOP | Gravity.LEFT, 0, 0);
(Gravity.BOTTOM| Gravity.RIGHT, 0, 0); dan lain-lain. 

Untuk posisi x dan y dalam bentuk angka 0, 0 diatas, Anda juga bebas menkostuminasinya sesuai kenyamanan Anda. Contohnya, Anda ingin menggeser sedikit pesan toast secara horizontal, maka Anda dapat mengganti angka x menjadi misalnya 10, 20, 30, 50, 65, 100 dan seterusnya (tidak ada kelipatan). Begitupun untuk y yang vertikal.

Penerapan Toast Message

Baik, sekarang kita akan mempraktikan  membuat sebuah pesan toast langsung di Android Studio. Hal pertama tentulah membuat sebuah proyek baru atau pada proyek yang sudah ada. Jika Anda belum pernah membuat sebuah proyek, Anda bisa merujuk pada postingan ini

Setelah proyek dibuat, pada activity_main.xml kita akan membuat sebuah tombol yang ketika di klik akan menampilkan sebuah pesan toast. Berikut kode lengkap pada activity_main.xml :

<?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:id="@+id/text1"    
           android:layout_width="wrap_content"        
           android:layout_height="wrap_content"        
           android:layout_centerHorizontal="true"        
           android:layout_marginBottom="30sp"        
           android:text="Contoh Pesan Toast"        
           android:textSize="20sp"/>

       <Button        
           android:id="@+id/btnGo"        
           android:layout_width="wrap_content"        
           android:layout_height="wrap_content"        
           android:layout_below="@id/text1"        
           android:onClick="ShowToast"        
           android:layout_centerHorizontal="true"        
           android:text="Show Toast Message"/>

</RelativeLayout>

Mengenai Button (tombol), jika Anda belum familiar, Anda dapat melihat postingan ini jika ingin mempelajarinya lebih lanjut.
Selanjutnya adalah membuat sebuah pesan toast pada metode ShowToast atribut android:onClick dari elemen Button diatas pada file java aktivitas utama tersebut. Pada MainActivity.java, berikut kode lengkapnya :

package com.example.proyekpertama;

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 ShowToast(View view) {
        Toast toast = Toast.makeText(this, "Ini adalah pesan Toast", Toast.LENGTH_LONG);
        toast.setGravity(Gravity.CENTER, 0, 0);
        toast.show();
    }
}

Catatan : Jika terdapat kata-kata digaris bawahi berwarna merah pada file java tersebut setelah Anda menyalin kode-kode diatas, artinya Anda perlu mengimpor class dari Android Library untuk setiap object berwarna merah. Arahkan mouse Anda pada tulisan berwarna merah tersebut lalu klik import class. Atau, arahkan mouse Anda pada tulisan berwarna merah kemudian klik Alt+Enter lalu pilih import class.

Menguji Toast Message

Selanjutnya adalah menjalankan aplikasi. Berikut dibawah ini video singkat setelah aplikasi dijalankan pada Android Virtual Device.
Jika ada pertanyaan atau sesuatu yang ingin Anda katakan, jangan ragu untuk menyampaikannya melalui komentar atau bisa kirim email ke gwnbstudio@gmail.com


Share:

Wednesday, May 27, 2020

Komponen Button (Tombol) di Android Studio

Button (Tombol) Android Studio

Button (tombol) di Android adalah komponen GUI (Graphical User Interface) yang peka terhadap klik. GUI sendiri adalah suatu cara untuk mengkomunikasikan apa yang di inginkan-terhadap sebuah aplikasi komputer atau sistem operasi tanpa perlu mengetik perintah-perintah, contohnya : icon dan arrows.

Ada 2 jenis tombol di Android Studio :
  • Button dengan Teks, sebuah tombol yang mengandung teks di dalamnya.
  • Button dengan Gambar, sebuah tombol yang mengandung sebuah gambar di dalamnya (ImageButton).

Button dengan Teks

Tombol dengan teks ini diwakili oleh Class Android yaitu : android.widget.Button. Sebuah tombol dapat dimasukkan ke dalam GUI melalui .XML file atau secara terprogram pada .java file.
Cara menambah Button (tombol) ke Aplikasi Android melalui sebuah layout XML file yaitu hanya dengan memasukkan sebuah elemen tombol pada layout tersebut, di tempat dimana Anda ingin tombol tersebut di tempatkan pada jangkauan layout. Berikut contoh sebuah tombol dengan teks pada layout XML :

<Button
          android:id="@+id/button1"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:text="BUTTON TEXT" />
  • Atribut android:id adalah identitas unik untuk tombol tersebut.
  • Atribut android:layout_width dan layout_height adalah ukuran pada tombol tersebut. Yang mana width adalah lebar dan height adalah tingginya. wrap_content mengartikan bahwa ukuran menyesuaikan terhadap komponennya.
  • Atribut android:text adalah teks yang akan di tampilkan di dalam komponen tombol tersebut.
Dan berikut contoh menambah tombol secara terprogram melalui file .java

Public class MainActivity extends AppCompatActivity {

          @Override

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

                   //Menambah tombol secara terprogram

                   Button button1 = new Button (this);
                   button1.setText("BUTTON TEXT");

                   //Memasukkan tombol ke layout

                   RelativeLayout relativelayout = findViewById(R.id.rootlayout);
                   relativelayout.addView(button1);
            }
}

Button dengan Gambar (Image Button)

Pengertian dan cara implementasi juga sama seperti Button dengan Teks, hanya ada penambahan atribut untuk memasukkan gambar ke dalam tombol dan perbedaan nama dalam menambah tombol. Berikut contoh menambahkan ImageButton pada sebuah layout XML :

<ImageButton
          android:id="@+id/buttonImage1"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:src="@drawable/buttonimage" />
  • Atribut android:src digunakan untuk memanggil gambar yang ingin dimasukkan. Pada contoh diatas, sumber gambar yang ingin di masukkan berada pada folder drawable. Dan buttonimage setelah drawable tersebut adalah nama file gambarnya. Selebihnya untuk penjelasan atribut-atribut lain adalah sama dengan Button dengan Teks.
Dan berikut cara pengimplementasian secara terprogram melalui java :

Public class MainActivity extends AppCompatActivity {

          @Override

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

                   //Menambah tombol gambar  secara terprogram

                   ImageButton buttonImage1 = new ImageButton (this);
                   buttonImage1.setImageResource("R.drawable.buttonimage);

                   //Memasukkan tombol gambar ke layout

                   RelativeLayout relativelayout = findViewById(R.id.rootlayout);
                   relativelayout.addView(buttonImage1);
            }
}

Penanganan Saat Tombol di Klik

Maksud dari penanganan disini adalah :  apa yang Anda inginkan saat tombol di klik; apakah ingin menampilkan sebuah pesan, meluncurkan aktivitas, menghakiri sebuah aktivitas, dan lain sebagainnya. Untuk menangani klik, cukup dengan menambahkan atribut android:onClick pada elemen tombol (baik tombol dengan teks ataupun tombol dengan gambar) tersebut. Berikut penerapannya pada contoh button dengan teks sebelumnya :

<Button
          android:id="@+id/button1"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:onClick="AkhiriAktivitas"
          android:text="BUTTON TEXT" />

Pada contoh diatas, kita akan menghakiri sebuah aktivitas saat tombol di klik. Setelah atribut onClick di tambahkan, berikutnya adalah membuat metode onClick tersebut pada file java MainActivity setelah metode onCreate :

Public class MainActivity extends AppCompatActivity {

          @Override

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

                   //Menambah tombol secara terprogram

                   Button button1 = new Button (this);
                   button1.setText("BUTTON TEXT");

                   //Memasukkan tombol ke layout

                   RelativeLayout relativelayout = findViewById(R.id.rootlayout);
                   relativelayout.addView(button1);
           }

           //Metode android.view.View class untuk penanganan klik tombol

           public void AkhiriAktivitas (View view) {
           finish();
           }
}

finish(); digunakan untuk mengakhiri sebuah aktivitas dimana Anda berada saat itu, dan mengembalikan Anda dimana Anda berada sebelumnya. Contohnya saat Anda membuka aplikasi, tempat yang Anda injak pertama kali adalah MainActivity atau aktivitas launcher. Kemudian Anda pergi ke aktivitas lain, setelah itu Anda menglik tombol yang dibuat diatas yang berisi finish(); maka Anda akan kembali ke aktivitas launcher. Namun berbeda saat Anda membuka aplikasi kemudian mengklik tombol yang dibuat diatas maka Anda akan kembali ke layar utama smartphone android Anda.

Penangan saat tombol di klik juga dapat di implementasikan langsung melalui file java (tanpa menambahkan atribut onClick di XML), yaitu dengan menambahkan setOnClickListener pada tombol yang dibuat secara terprogram tadi, namun penambahan dibuat di dalam metode onCreate. Berikut caranya :

Public class MainActivity extends AppCompatActivity {

          @Override

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

                   //Menambah tombol secara terprogram

                   Button button1 = new Button (this);
                   button1.setText("BUTTON TEXT");

                   //Penanganan klik tombol secara terprogram

                   button1.setOnClickListener (new OnClickListener) {
                              @Override
                               public void onClick (View v) {
                                        finish();
                               }
                    });

                   //Memasukkan tombol ke layout

                   RelativeLayout relativelayout = findViewById(R.id.rootlayout);
                   relativelayout.addView(button1);
            }
}

Untuk penanganan klik pada Button dengan Gambar adalah sama dengan Button dengan Teks. Jika ada pertanyaan atau sesuatu yang ingin Anda sampaikan, jangan ragu untuk memposting melalui komentar atau via email pada gwnbstudio@gmail.com.
Share:

Hubungi Saya

Name

Email *

Message *

Terlaris 30 Hari Terakhir