Tampilkan postingan dengan label Android. Tampilkan semua postingan
Tampilkan postingan dengan label Android. Tampilkan semua postingan

Minggu, 10 Mei 2020

Cara Menginstal XAPK di Android

Instal_XAPK_di_Android

Jika anda adalah seseorang yang suka mengutak-atik ponsel, maka saya rekomendasikan untuk mengenal lebih jauh file yang berekstensi XAPK dan bagaimana cara instal file XAPK di perangkat android. Ekstensi file ini akan memudahkan proses pengunduhan aplikasi yang tidak tersedia di Play Store.

Apa itu file XAPK?

Anda semua mungkin sangat mengenal Paket Aplikasi Android. APK adalah format standar untuk aplikasi dan game Android. Namun ada alternatif file yang disebut dengan XAPK yang perlahan-lahan masuk ke ekosistem Android. XAPK adalah kombinasi APK dan OBB atau kumpulan beberapa APK yang digabungkan menjadi satu. Jadi alih-alih menyediakan dua file berbeda, pengembang mengemasnya menjadi satu paket, yang dikenal sebagai XAPK. Anda mungkin menemukan file-file ini saat mengunduh aplikasi dari situs pihak ketiga seperti APKPure atau APKMirror. Sekarang mari kita lihat kompatibilitasnya dan langkah-langkah untuk menginstal file XAPK ini di perangkat Android.

Apakah perangkat android mendukung format file XAPK?

Meskipun sistem file Android tidak memungkinkan langsung menginstal file XAPK ini, ada beberapa aplikasi pihak ketiga yang mampu melakukannya. Nah, dalam panduan ini, saya akan menggunakan cara yang menggunakan bantuan aplikasi pihak ketiga dan juga cara instal XAPK secara manual. Untuk tutorial ini, anda hanya memerlukan file explorer dengan kemampuan kompresi (.zip, .rar). Dalam panduan ini, kita akan menggunakan Solid Explorer File Manager. Namun, jika memilih untuk tidak menggunakan file explorer atau semacamnya, maka ada cara lain, tetapi sedikit lebih lama. Anda dapat mengunduh file XAPK yang diperlukan dan melakukan langkah-langkah yang disebutkan di bawah di desktop dan kemudian mentransfer file-filenya ke perangkat Android.

Langkah-langkah untuk menginstal file XAPK secara manual 

- Gunakan file manager yang mampu melakukan ekstrak file terkompresi.
- Unduh file XAPK yang diinginkan di perangkat anda.
- Buka file explorer dan navigasikan ke file yang diunduh (umumnya terletak di folder Download).
- Kemudian rename file XAPK dari xapk ke zip. Misalnya, jika nama file adalah game.xapk, nama file harus diubah menjadi game.zip. Jika ekstensi file tidak dirubah, anda tidak akan dapat menginstal file XAPK pada perangkat Android.

android_file_manager

- Tekan lama pada file zip tersebut dan cari opsi untuk melakukan ekstrak atau dekompresi file.


- Arahkan ke folder zip yang diekstrak. di sana kita akan menemukan file APK, folder Android, dan beberapa file lainnya.
- Buka folder Android dan salin folder obb.


- Sekarang arahkan ke Penyimpanan Internal > Android > obb > Paste folder obb tadi ke lokasi ini.
- Kembali ke folder tempat awal dan instal file APK dari sana. Jika diperlukan, ijinkan untuk melakukan penginstalan dari sumber yang tidak dikenal.


Sampai disini, kita telah berhasil menginstal file XAPK pada perangkat Android.

Menginstal XAPK Menggunakan APKPure

Hal terbaik tentang proses instalasi XAPK melalui APKPure adalah simpel dan mudah. Secara otomatis memindai penyimpanan internal telepon dan menampilkan semua file APK dan XAPK.

Jadi, yang perlu anda lakukan adalah pergi ke App management > APK/XAPK Management dan klik tombol Instal. Sesimpel itu.

Bergantung pada ukurannya, perlu waktu untuk memproses instalasi. Setelah selesai, anda akan dapat mengakses game seperti halnya game lain yang diunduh dari Play Store.

Rabu, 22 April 2020

Cara Buat Android AlertDialog Dengan Opsi List

android_alertdialog


AlertDialog adalah cara paling sederhana untuk mendapatkan respon dari pengguna dengan memberikan mereka daftar opsi untuk dipilih. Posting ini akan membahas bagaimana cara buat alert dialog box dengan opsi list menggunakan android studio.

Jika kita membaca dokumentasi resmi, disitu sudah diterangkan bahwa ada tiga jenis list yang dapat digunakan dengan AlertDialog di android:
  • Traditional single-choice list
  • Persistent single-choice list (tombol radio)
  • Persistent multiple-choice list (kotak centang)
Dalam Tutorial ini saya akan membuat demo untuk semua 3 jenis AlertDialog with option list.

Dasar untuk membuat Alert Dialog Box

// setup alert builder
 AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
        builder.setTitle("Choose an Option");

Buat AlertDialog dan tampilkan ke user

// add list
        String[] options = {"Option1", "Option2", "Option3", "Option4", "Option3"};

Traditional Single-Choice Android AlertDialog List

traditional_single_choice_android_alert_dialog_list


Cara menggunakan single-choice tradisional adalah dengan menggunakan setItems method.

Panggil function button klik di bawah ini:

public void TraditionallistDialog()
    {
        // setup alert builder
        AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
        builder.setTitle("Choose an Option");
        // buat array list
        String[] options = {"Option1", "Option2", "Option3", "Option4", "Option3"};
        //Pass array list di Alert dialog
        builder.setItems(options, new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                switch (which) {
                    case 0: // pilih opsi
                    case 1: // Konfigurasikan sesuai kebutuhan di sini
                    case 2:
                    case 3:
                    case 4:
                }
            }
        });
        // buat dan tampilkan alert dialog
        AlertDialog dialog = builder.create();
        dialog.show();
    }

Untuk Tradisional list, kita tidak perlu mengatur tombol positif, karena pengguna memilih daftar mana saja dari AlertDialog item dan akan secara otomatis dipilih dan AlertDialog ditutup.

Radio Button Single-Choice Android AlertDialog List

radio_button_single_choice_android_alertdialog_list


Kelebihan dari Radio button single-choice daripada list tradisional adalah user bisa memeriksa mana yang merupakan pilihan default dalam list sedangkan list Tradisional tidak ada pilihan default.

Cara membuat radio button list adalah dengan menggunakan setSingleChoiceItems.

Panggil function button klik di bawah ini:

public  void radiolistDialog()
    {
        // setup alert builder
        AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
        builder.setTitle("Choose a Option");
        // buat radio button list
        final String[] selectedoption = {"Option1", "Option2", "Option3", "Option4", "Option5"};
        int checkedItem = 1; // cow
        builder.setSingleChoiceItems(selectedoption, checkedItem, new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                // user check item
                Toast.makeText(MainActivity.this,"selected option: "+selectedoption[which],Toast.LENGTH_LONG).show();
                //di sini 'which' adalah posisi yang dipilih
            }
        });
       // tambah tombol OK dan Cancel
        builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                // user clicked OK
            }
        });
        builder.setNegativeButton("Cancel", null);
        // buat dan tampilkan alert dialog
        AlertDialog dialog = builder.create();
        dialog.show();
    }

Di radio button list kita dapat menerapkan 2 jenis tombol di kotak AlertDialog yaitu setPositiveButton () dan setNegativeButton () dengan tindakan yang berbeda.

Checkbox Choice Android AlertDialog List

checkbox_choice_android_alertdialog_list


Checkbox AlertDialog memungkinkan user dapat memilih beberapa opsi dari opsi yang diberikan.

Cara membuat checkbox list adalah dengan menggunakan setMultiChoiceItems.

public void checkboxlistDialog()
    {
        // setup alert builder
        AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
        builder.setTitle("Choose some Options ");
        // buat checkbox list
        String[] selectedoption = {"Option1", "Option2", "Option3", "Option4", "Option5"};
        final boolean[] checkedItems = {true, false, false, false, false};
        builder.setMultiChoiceItems(selectedoption, checkedItems, new DialogInterface.OnMultiChoiceClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which, boolean isChecked) {
                // user mencentang atau menghapus centang pada kotak
            }
        });
       // tambah tombol OK dan Cancel
        builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                // user klik OK
            }
        });
        builder.setNegativeButton("Cancel", null);
        // buat dan tampilkan alert dialog
        AlertDialog dialog = builder.create();
        dialog.show();
    }

Source Code Lengkap Alert Dialog With List of Options:

activitymain.xml for UI Design

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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=".MainActivity">
    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Alert Dialog box with List "
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.07" />
    <Button
        android:id="@+id/listdialog1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="48dp"
        android:text="Simple list"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.498"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/textView" />
    <Button
        android:id="@+id/radiolist"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="28dp"
        android:text="Radio button list"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.498"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/listdialog1" />
    <Button
        android:id="@+id/checkboxlist"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="40dp"
        android:text="Checkbox list"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.498"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/radiolist" />
</androidx.constraintlayout.widget.ConstraintLayout>

MainActivity.java

package ekarzaen.com.customalertdialog;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
    Button simplelist,radiolist,checkboxlist;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        simplelist=(Button)findViewById(R.id.listdialog1);
        radiolist=(Button)findViewById(R.id.radiolist);
        checkboxlist=(Button)findViewById(R.id.checkboxlist);
     simplelist.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                simplelistDialog();
            }
        });
     radiolist.setOnClickListener(new View.OnClickListener() {
         @Override
         public void onClick(View view) {
             radiolistDialog();
         }
     });
     checkboxlist.setOnClickListener(new View.OnClickListener() {
         @Override
         public void onClick(View view) {
             checkboxlistDialog();
         }
     });
    }

    public void simplelistDialog()
    {
        // setup alert builder
        AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
        builder.setTitle("Choose an Option");
        // buat array list
        String[] options = {"Option1", "Option2", "Option3", "Option4", "Option3"};
        //Pass array list di Alert dialog
        builder.setItems(options, new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                switch (which) {
                    case 0: // pilih opsi
                    case 1: // Konfigurasikan sesuai kebutuhan di sini
                    case 2:
                    case 3:
                    case 4:
                }
            }
        });

        // buat dan tampilkan alert dialog
        AlertDialog dialog = builder.create();
        dialog.show();
    }

    public  void radiolistDialog()
    {
        // setup the alert builder
        AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
        builder.setTitle("Choose a Option");

        // buat radio button list
        final String[] selectedoption = {"Option1", "Option2", "Option3", "Option4", "Option5"};
        int checkedItem = 1; // cow
        builder.setSingleChoiceItems(selectedoption, checkedItem, new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                // user memeriksa item
                Toast.makeText(MainActivity.this,"selected option: "+selectedoption[which],Toast.LENGTH_LONG).show();
                //di sini 'which' adalah posisi yang dipilih
            }
        });

        // tambah tombol OK dan Cancel
        builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                // user klik OK
            }
        });
        builder.setNegativeButton("Cancel", null);

        // buat dan tampilkan alert dialog
        AlertDialog dialog = builder.create();
        dialog.show();
    }

   public void checkboxlistDialog()
    {
        // setup alert builder
        AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
        builder.setTitle("Choose some Options ");
        // buat checkbox list
        String[] selectedoption = {"Option1", "Option2", "Option3", "Option4", "Option5"};
        final boolean[] checkedItems = {true, false, false, false, false};
        builder.setMultiChoiceItems(selectedoption, checkedItems, new DialogInterface.OnMultiChoiceClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which, boolean isChecked) {
                // user mencentang atau menghapus centang pada kotak
            }
        });

        // tambah tombol OK dan Cancel
        builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                // user klik OK
            }
        });
        builder.setNegativeButton("Cancel", null);

        // buat dan tampilkan alert dialog
        AlertDialog dialog = builder.create();
        dialog.show();
    }
}

Cara Instal Dan Konfigurasi Flutter Di Ubuntu

install_flutter_ubuntu

Flutter sebagai SDK pengembangan aplikasi mobile open-source yang dibuat oleh Google semakin mendapat perhatian dari pengembang saat ini. Flutter digunakan untuk mengembangkan aplikasi untuk Android dan iOS, serta menjadi metode utama untuk membuat aplikasi untuk Google Fuchsia (sistem operasi baru yang sedang dikembangkan oleh Google). Di sini saya akan menjelaskan langkah-langkah untuk menginstal Flutter di sistem Ubuntu.

Sebenarnya untuk instalasi Flutter di Ubuntu sudah dijelaskan di halaman dokumentasi Flutter. Tetapi saya menghadapi beberapa masalah ketika mengikutinya dan beberapa langkahnya sedikit membingungkan. Inilah alasan di balik pembuatan tutorial ini. Namun, jika ingin mencoba mengikuti panduan dari dokumentasi resmi, silahkan ikuti tautan di bawah ini. Ikuti langkah-langkahnya.


Install JDK

Biasanya, aplikasi Android native dibangun menggunakan Java. Jadi Java Development Kit (JDK) diperlukan.

Java Development Kit (JDK) adalah lingkungan pengembangan perangkat lunak yang digunakan untuk mengembangkan aplikasi dan applet Java. Ini termasuk Java Runtime Environment (JRE), interpreter/loader (java), kompiler (javac), archiver (jar), generator dokumentasi (JavaDoc) dan alat-alat lain yang diperlukan dalam pengembangan Java.

JDK dapat diinstal pada sistem Ubuntu dengan perintah di bawah ini.

$ sudo add-apt-repository ppa:openjdk-r/ppa
$ sudo apt-get update
$ sudo apt-get install openjdk-8-jdk

Instal dan Konfigurasi Android Studio

Untuk pengembangan aplikasi untuk setiap sistem operasi sudah tersedia Integrated Development Environment (IDE). Microsoft Visual Studio adalah IDE untuk mengembangkan aplikasi Windows dan Xcode adalah IDE untuk mengembangkan aplikasi macOS dan iOS. Nah disini, Android studio adalah IDE resmi untuk mengembangkan aplikasi Android.

Untuk panduan ini kita akan mengembangkan aplikasi menggunakan kerangka Flutter dengan bahasa Dart. Tetapi aplikasi Android hanya dapat dibangun menggunakan Java. Jadi, tugas framework Flutter adalah hanya mengonversi kode Dart ke kode Java.

Kode Java ini akan menjangkau tool-tool di studio Android dan dari sana, aplikasi akan dibuat dan dijalankan di mesin Virtual atau perangkat seluler apa pun.

Untuk cara instal Android Studio di Ubuntu atau distro linux debian-based, silahkan baca postingan ini

Konfigurasi Environment variable ANDROID_HOME

Environment variable adalah variabel sistem global yang dapat diakses oleh semua proses yang berjalan di bawah Sistem Operasi (OS). Beberapa proses pengembangan yang berjalan di sistem perlu mengakses variabel sistem, dan kita perlu membuat environment variable untuknya.

Jadi buka file .bash_profile menggunakan nano editor.

$ sudo nano $HOME/.bash_profile

Cukup salin dan tempel kode di bawah ini di dalamnya.

$ export ANDROID_HOME=$HOME/Android/Sdk  export
$ PATH=$PATH:$ANDROID_HOME/tools  export
$ PATH=$PATH:$ANDROID_HOME/platform-tools

Gunakan pintasan keyboard di bawah ini untuk menyimpan file.

Press Ctrl + O (Write out)
Press Enter
Press Ctrl + x (exit)

Instal Flutter Plugin di Android Studio

Step ini merupakan langkah opsional untuk menginstal plugin Flutter di Android Studio. Tetapi step ini akan membantu jika sedang mengembangkan proyek Flutter menggunakan Android Studio. Proses ini juga menginstal plugin Dart yang diperlukan untuk pengembangan Flutter. Caranya, jalankan Android Studio Welcome Window.

Lalu pergi ke, Configure -> Plugin

Sekarang, Cari Flutter dan Instal. Diperlukan restart untuk Android Studio untuk mengaktifkan plugin ini.

Instal dan Atur Flutter SDK

Sekarang kita perlu menginstal dan mengatur Flutter SDK. Untuk mulai membuat proyek Flutter, Flutter Software Development Kit (SDK) diperlukan. Silahkan instal dengan langkah-langkah di bawah ini.

Pertama, kita harus mengunduh Flutter SDK dari situs resmi.

Flutter - Instalasi Linux

Unduh file tar.xz dengan mengklik tombol.

flutter_sdk


Saat artikel ini ditulis kita akan mengunduh file flutter_linux_v1.12.13 + hotfix.9-stable.tar.xz. Nama file dapat bervariasi dengan rilis terbaru. Lanjut...Saya berasumsi bahwa file yang diunduh ada di direktori Download. Sekarang ekstrak file terkompresi ini menggunakan perintah terminal di bawah ini:

$ tar xf ~/Downloads/flutter_linux_v1.9.1+hotfix.6-stable.tar.xz

Menambahkan Flutter ke Sistem Path:

$ export PATH=`pwd`/flutter/bin:$PATH
$ source $HOME/.bash_profile

Untuk userspace (non-kernel) software, Google / Android lebih memilih Apache 2.0 (dan lisensi serupa seperti BSD dan MIT) daripada lisensi lain seperti Lesser General Public License (LGPL). Inilah mengapa tujuan Android adalah untuk mempromosikan keterbukaan di dunia seluler, dan mereka tidak dapat mendikte semua penggunaan untuk perangkat lunak mereka.

Jadi, kita perlu menerima beberapa lisensi untuk memulai pengembangan dengan Flutter. Cukup jalankan perintah di bawah ini dan terima semua lisensi dengan menekan y.

$ flutter doctor --android-licenses

Update Path secara Permanen

Kita telah menambahkan variabel Path sebelumnya. Tetapi hanya berlaku untuk jendela terminal saat ini. Kita harus menjalankan perintah di bawah ini untuk membuatnya permanen.

$ export PATH=Downloads/flutter/bin:$PATH

Membuat Aplikasi Baru

Membuat aplikasi baru di Flutter dapat dilakukan dengan tiga metode. Menggunakan plugin Android Studio, plugin kode VS, atau menggunakan metode Terminal + Editor. Di sini, saya akan menggunakan metode ketiga (Terminal + Editor).

$ flutter create awesome_project

Memilih Kode Editor

Kita dapat memilih kode editor favorit masing-masing untuk mengedit file-file proyek. Kali ini saya memilih Visual Studio Code (Karena secara langsung mendukung plugin Flutter).


Dari tautan di atas, kita dapat mengunduh file .deb VS Code yang kompatibel dengan Ubuntu / Debian. File deb ini dapat diinstal dengan klik dua kali pada Ubuntu.

Setelah menginstal VS Code, langsung ke folder proyek.

$ cd awesome_project

Buka proyek menggunakan VS Code dengan mengetik perintah di bawah ini.

$ code .

Mulai sekarang dan seterusnya, kita dapat menggunakan Terminal VS Code daripada Terminal asli Ubuntu karena kita dapat menggunakan Terminal tanpa keluar dari VS Code.
(Pergi ke View -> Integrated Terminal dari menubar teratas VS Code)

Menjalankan Aplikasi di Perangkat Android

Sekarang coba jalankan proyek di ponsel Android kita. Di perangkat seluler, Pergi ke Setting-> About. Disitu kita dapat melihat menu Build Version. Klik opsi secara terus-menerus hingga mengaktifkan opsi Pengembang

Sekarang, kembali ke Pengaturan. Kita dapat melihat menu Opsi pengembang di sana. Aktifkan. Juga, aktifkan opsi USB debugging di dalamnya.

Hubungkan perangkat seluler dengan sistem Ubuntu menggunakan port USB. Ketikkan perintah di bawah ini untuk memeriksa apakah perangkat seluler terhubung atau tidak.

$ flutter devices

Jika terhubung, dari terminal VS Code, jalankan:

$ flutter run

Perintah di atas akan menginstal dan membuka aplikasi yang baru dibuat di perangkat Android yang terhubung.

flutter_demo_device

Rabu, 08 April 2020

Buat Aplikasi Android Menggunakan WebView di Android Studio

Langkah-langkah untuk Membuat Aplikasi Android untuk Situs Web atau Blog menggunakan WebView:

1. Buat proyek android baru dan beri nama apa saja terserah. Disini sebagai contoh Saya buat aplikasi android untuk blog ini, ekarzaen.blogspot.com. Jadi saya menamainya sebagai Ekarzaen Blog.

2. Sekarang pilih SDK minimum. Saya memilih SDK minimum sebagai API 10. Pilih Blank Activity> Next> Finish. Saya menggunakan nama activity dan file xml sesuai nama default. Sampai tahap ini kita selesai membuat Proyek Android.

3. Sebagai tambahan kita juga dapat membuat Splashscreen seperti yang telah dibahas dalam post sebelumnya tentang cara membuat splashscreen di android studio.

4. Sekarang buka Main Activity.java di Nama Projek> app> src> main> java> MainActivity
Sekarang ketikkan kode berikut:

package com.ekarzaen.ekarzaenblog;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.MenuItem;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.ProgressBar;


public class MainActivity extends Activity {

 private WebView mWebView;
 ProgressBar progressBar;


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

 mWebView = (WebView) findViewById(R.id.activity_main_webview);

 progressBar = (ProgressBar) findViewById(R.id.progressBar1);

 WebSettings webSettings = mWebView.getSettings();
 webSettings.setJavaScriptEnabled(true);
 mWebView.loadUrl("http://www.ekarzaen.blogspot.com");
 
 }
}


Di sini Anda perlu menentukan url mana yang akan dimuat di loadUrl WebView. Cukup ketikkan alamat web Anda di sana. Di sini saya menggunakan url situs web saya: http://www.ekarzaen.blogspot.com yang ingin saya desain aplikasinya.

Selanjutnya edit activity_main.xml dengan mengklik tab teks dan paste kode berikut untuk menampilkan progressbar dan menampilkan situs web Anda:


<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" android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">

    <ProgressBar
        android:layout_centerHorizontal="true"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:layout_gravity="center_vertical|center_horizontal"
        android:id="@+id/progressBar1"/>

    <TextView
        android:layout_below="@+id/progressBar1"
        android:layout_height="wrap_content"
        android:id="@+id/LoadingText"
        android:layout_width="fill_parent"
        android:text="Loading, Please Wait.."
        android:textSize="20sp"
        android:gravity="center_horizontal">
    </TextView>

    <WebView
        android:id="@+id/activity_main_webview"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>

</RelativeLayout>


Pastikan Anda menambahkan izin Internet dalam file manifest:


<uses-permission android:name="android.permission.INTERNET"/>


Sekarang coba jalankan aplikasi di emulator atau menggunakan real device. Sampai tahap ini aplikasi sudah bisa me-load blog atau situs web. Tetapi ada satu permasalahan yaitu ketika kita mengklik tautan apa pun di situs web, aksi tersebut akan membuka peramban seluler Anda alih-alih membuka secara langsung tautan itu di dalam aplikasi. Kita perlu memastikan bahwa tautan apa pun terbuka di aplikasi itu sendiri.

Untuk membuat tautan apa pun berfungsi di aplikasi itu sendiri, ganti kode dengan yang berikut di MainActivity.java:


package com.ekarzaen.ekarzaenblog;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.MenuItem;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.ProgressBar;


public class MainActivity extends Activity {

    private WebView mWebView;
    ProgressBar progressBar;


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

        mWebView = (WebView) findViewById(R.id.activity_main_webview);

        progressBar = (ProgressBar) findViewById(R.id.progressBar1);

        WebSettings webSettings = mWebView.getSettings();
        webSettings.setJavaScriptEnabled(true);
        mWebView.loadUrl("http://www.ekarzaen.blogspot.com");
        mWebView.setWebViewClient(new HelloWebViewClient());


    }

    private class HelloWebViewClient extends WebViewClient{

        @Override
        public void onPageStarted(WebView view, String url, Bitmap favicon) {
            // TODO Auto-generated method stub
            super.onPageStarted(view, url, favicon);
        }

        @Override
        public boolean shouldOverrideUrlLoading(WebView webView, String url)
        {
            webView.loadUrl(url);
            return true;
        }

        @Override
        public void onPageFinished(WebView view, String url) {
            // TODO Auto-generated method stub
            super.onPageFinished(view, url);

            progressBar.setVisibility(view.GONE);
        }

    }


    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event)
    { //jika back key di tekan
        if((keyCode == KeyEvent.KEYCODE_BACK)&& mWebView.canGoBack())
        {
            mWebView.goBack();
            return true;

        }

        return super.onKeyDown(keyCode, event);

    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        if (id == R.id.action_settings) {
            return true;
        }

        return super.onOptionsItemSelected(item);
    }

    public void onBackPressed() {
        AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(
                MainActivity.this);

        // set title
        alertDialogBuilder.setTitle("Keluar");

        // set dialog message
        alertDialogBuilder
                .setMessage("Apakah Anda ingin keluar?")
                .setCancelable(false)
                .setPositiveButton("Ya",new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog,int id) {
                        // if this button is clicked, close
                        // current activity
                        MainActivity.this.finish();
                    }
                })
                .setNegativeButton("Tidak",new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog,int id) {
                        // if this button is clicked, just close
                        // the dialog box and do nothing
                        dialog.cancel();
                    }
                });

        // create alert dialog
        AlertDialog alertDialog = alertDialogBuilder.create();

        // show it
        alertDialog.show();
    }
}


Di sini saya juga menyiapkan WebViewClient untuk menampilkan tautan apa pun di aplikasi itu sendiri dan juga mengganti method onKeyDown untuk mengeksekusi method goBack WebView. Saya juga menggunakan Method BackPressed untuk menampilkan dialog Keluar jika pengguna menekan tombol kembali.

Sebagai tambahan Kita dapat mengubah ikon launcher dengan mengganti ikon di folder mipmap yang umumnya berlokasi di:


C:\Users\username\ AndroidStudioProjects\Nama_proyek\app\src\main\res


Untuk meng-generate paket ikon Anda dapat menggunakan tool ini. Nah sekarang aplikasi seluler basic untuk Situs Web Anda sudah siap untuk dicoba.

Tutorial Android Splash Screen Menggunakan Android Studio

Banyak Aplikasi Android populer seperti Skype, Facebook, Adobe Reader, 500px, Dropbox dll., Menggunakan splashscreen untuk menampilkan logo mereka. Sebagian besar Aplikasi Android menggunakan Android Splash Screen sebelum meluncurkan Aktivitas aplikasi. Layar splash Android digunakan untuk menampilkan logo atau merek untuk suatu aplikasi. Pada artikel ini kita akan membahas tentang menerapkan Layar Splash Android secara sederhana.

Pertama kita akan membuat proyek default baru menggunakan langkah-langkah sederhana ini:

  • Klik pada File > Proyek Baru.
  • Selanjutnya, tentukan Nama Aplikasi dan SDK Minimum dan tekan Selanjutnya
  • Pilih Empty Activity dan Tekan Selanjutnya.
  • Tekan Selesai.

Tahap ini akan menciptakan Proyek Hello world sederhana yang akan kami terapkan layar Splash android. Kami sudah membahas secara rinci tentang Membuat Proyek Android Baru di artikel sebelumnya.

Membuat Android Splashscreen:

1. Untuk menampilkan layar splash, pertama-tama kita perlu layout. Jadi mari kita membuat Layout dengan Mengklik Kanan pada Layout (terletak di App > Res > Layout) dan memilih New > Layout Resource File. Beri nama apa saja. Saya memberikannya splash.xml. Sekarang pilih tab Teks yang terletak di bawah seperti yang ditunjukkan pada gambar di bawah ini.


2. Sekarang Buka File Explorer di Sistem Operasi Anda dan paste gambar yang ingin Anda gunakan sebagai splash screen di Drawable Folder. (Umumnya terletak di:

C:\Users\UserName\ AndroidStudioProjects\AndroidSplashScreenExample\app\src\main\res\drawable


Ukuran gambar yang disarankan adalah 800 x 1280 piksel dan formatnya adalah jpeg atau png. Pastikan Anda memberi nama gambar menggunakan huruf kecil dan garis bawah tanpa menggunakan Simbol Khusus. Saya menamainya sebagai splash_image.

3. Sekarang ketikkan kode berikut di Tab Teks splash.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:layout_width="match_parent"
              android:layout_height="match_parent"
              android:background="@drawable/splash_image"
              android:orientation="vertical"/>


Background diatur ke splash_image yang baru saja kita salin di folder Drawable. Di sini lebar dan tinggi tata letak diatur ke match_parent sehingga gambar latar belakang memenuhi seluruh Tata Letak.

4. Splashscreen adalah activity terpisah yang akan ditampilkan terlebih dahulu dari semua activity lainnya. Saya membuat splash activity dengan membuat class baru. Buat class baru dengan cara pilih App > Java > Package Anda dan klik kanan pada package Anda dan pilih New > Java Class. Beri nama apa saja. Di sini, saya memberikannya sebagai SplashScreen. Sekarang Ketikkan Kode Berikut dalam activity SplashScreen:

package com.ekarzaen.androidsplashscreenexample;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;


public class SplashScreen extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub super.onCreate(savedInstanceState);
        setContentView(R.layout.splash);
        Thread timerThread = new Thread() {
            public void run() {
                try {
                    sleep(3000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                } finally {
                    Intent intent = new Intent(SplashScreen.this, MainActivity.class);
                    startActivity(intent);
                }
            }
        };
        timerThread.start();
    }

    @Override
    protected void onPause() { // TODO Auto-generated method stub
        super.onPause();
        finish();
    }
}


Saya menggunakan method kelas Thread seperti -

sleep (long time) - untuk membuat thread tidur selama beberapa waktu (dalam milidetik).

start () - untuk memulai thread.

Sleep membutuhkan waktu dalam milidetik sebagai parameternya (3000 => 3 detik). Di sini Saya menggunakan waktu tunda ini sebagai waktu untuk menampilkan activity layar splash. Setelah waktu tunda ini, MainActivity dimulai dengan kode yang ditulis di finally {} blok.

Aktivitas layar splash tidak boleh ditampilkan ketika pengguna menekan tombol kembali. Untuk melakukan ini, kita harus men-destroy aktivitas layar splash setelah ditampilkan selama beberapa detik. Ini dilakukan dengan menggunakan metode onPause (). Metode onPause () adalah metode kelas Activity yang akan dieksekusi ketika pengguna meninggalkan aktivitas.

Selanjutnya, Kita perlu menentukan aktivitas mana yang akan dibuka setelah menampilkan layar Splash. Ini dilakukan dengan menggunakan konstruktor Intent (Context, Class) dari kelas Intent.

5. Sekarang untuk membuat layar splash Anda berfungsi, Anda perlu mendaftarkan Activity SplashScreen di Android Manifest. Jadi, buka file Manifest dengan mengklik App> Manifests> AndroidManifest.xml. Sekarang kita tambahkan referensi ke Aktivitas baru yang baru saja kita buat dan Ubah Launcher (Aktivitas yang Diluncurkan lebih dulu) menjadi splash.xml dengan mengubah kode yang ditunjukkan di bawah ini:

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

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme">
        <activity
            android:name=".SplashScreen"
            android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity>
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name">
            <intent-filter>
                <action android:name="com.ekarzaen.androidsplashscreenexample.MAINACTIVITY"/>
                <category android:name="android.intent.category.DEFAULT"/>
            </intent-filter>
        </activity>
    </application>
</manifest>


Sekarang Tekan Tombol Jalankan (atau Shift + F10) dan pilih Emulator atau Perangkat Asli untuk menjalankan program. Sekarang Anda dapat melihat Android Splash Screen ditampilkan sebelum aktivitas Anda.

Selasa, 11 September 2018

Tutorial Fragment Di Android Studio



Di aplikasi android, Fragment adalah bagian dari Activity yang memungkinkan seorang android developer membuat lebih banyak "desain activity secara modular". Sehingga bisa saja jika kita katakan fragment adalah semacam sub-activity. Fragment bisa juga sebagai representasi dari perilaku atau sebagian antarmuka pengguna dalam suatu activity. Kita dapat menggabungkan beberapa Fragment dalam satu activity untuk membangun UI multi panel dan menggunakan kembali fragment tersebut ke dalam beberapa activity. Jika kita memasukkan suatu fragment ke satu activity maka "lifecycle" atau saya sebut sebagai status dari fragment tersebut akan dipengaruhi langsung oleh status host activity.

Kita dapat membuat Fragment dengan meng-extend kelas Fragment atau dengan memasukkan Fragment ke dalam layout dengan cara mendeklarasikan Fragment tersebut di dalam file layout activity, sebagai elemen <fragment>. Kita dapat memanipulasi setiap Fragment secara terpisah, seperti menambah atau menghapusnya.

Saat melakukan "Fragment Transaction" (saya sebut saja Transaksi), kita dapat menambahkan Fragment ke "backstack" yang dikelola oleh Activity. "Back stack" memungkinkan kita untuk melakukan "Reverse Fragment Transaction" pada saat menekan tombol "Back" pada perangkat. Sebagai contoh jika kita mengganti Fragment dan menambahkannya di back stack kemudian menekan tombol Back di perangkat maka hal itu akan menampilkan Fragment sebelumnya.

Beberapa Poin Penting Tentang Fragment Di Android.

  • Penggunaan Fragment digunakan mulai dari versi Android Honeycomb (API versi 11).
  • Kita dapat menambah, mengganti, atau menghapus Fragment dalam activity saat activity tersebut sedang berjalan. Untuk melakukan operasi ini kita memerlukan Layout (Relatif Layout, FrameLayout atau layout lainnya) dalam file xml dan kemudian mengganti layout itu dengan Fragment yang diperlukan.
  • Fragment memiliki layout, perilaku dan status callback sendiri.
  • Fragment dapat digunakan dalam berbagai activity.
  • Kita juga bisa menggabungkan beberapa Fragment dalam satu activity untuk membangun antarmuka multi-bidang.

Kegunaan Fragment Di Android.

Sebelum Fragment diperkenalkan, kita hanya dapat menampilkan satu activity di layar pada satu waktu tertentu sehingga tidak dapat membagi layar dan mengontrol bagian yang berbeda secara terpisah. Dengan bantuan Fragment, kita dapat membagi layar di berbagai bagian dan mengontrol bagian-bagian yang berbeda secara terpisah.

Dengan menggunakan Fragment, kita dapat membentuk beberapa Fragment dalam satu activity. Fragment memiliki event, layout, dan status mereka sendiri. Hal ini memberikan fleksibilitas dan juga meniadakan limitasi dalam activity tunggal di layar pada suatu waktu.

Kode Fragment Dasar Dalam XML:

<fragment
android:id="@+id/fragments"
android:layout_width="match_parent"
android:layout_height="match_parent" />


Buat Kelas Fragment di Android Studio:

Untuk membuat Fragment, pertama kali kita extend kelas Fragment, lalu override method status utama lalu masukkan logic kode aplikasi, serupa dengan cara menggunakan kelas activity. Saat membuat Fragment kita harus menggunakan callback onCreateView () untuk menentukan layout dan untuk menjalankan Fragment.

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.ViewGroup;

public class FirstFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
return inflater.inflate(R.layout.fragment_first, container, false);
}
}


Di sini parameter "inflater" adalah "LayoutInflater" yang digunakan untuk melakukan "inflate layout". Parameter "container" adalah parent ViewGroup (dari layout activity) tempat susunan Fragment yang akan disisipkan.

Parameter "savedInstanceState" adalah "Bundle" yang menyediakan data tentang "instance" sebelumnya dari Fragment. Method inflate () memiliki tiga argumen, pertama adalah "resource layout" yang ingin kita inflate, kedua adalah "ViewGroup" sebgai parent dari layout yang diinflate. Parameter ketiga adalah nilai boolean yang mengindikasikan apakah layout yang diinflate haruskah di attach ke ViewGroup (parameter kedua).

Implementasi Fragment di Android:

Fragment digunakan mulai dari versi Android Honeycomb (API 11). Ada beberapa kelas utama yang terkait dengan Fragment diantaranya adalah:

1. FragmentActivity: Ini adalah base class untuk semua activity yang menggunakan kompatibilitas berdasarkan fragment.

2. Fragment: Kelas dasar untuk semua definisi fragment.

3. FragmentManager: Kelas untuk berinteraksi dengan objek fragment di dalam suatu activity.

4. FragmentTransaction: Kelas untuk melakukan serangkaian operasi fragment seperti replace atau add fragment.

Contoh 1: Fragment Di Android Studio:



Langkah 1: Buat proyek baru dan beri nama FragmentExample

Langkah 2: Buka res -> layout -> activity_main.xml (atau) main.xml dan tambahkan kode berikut:

<LinearLayout 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"
android:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity">
<!-- display two Button's and a FrameLayout to replace the Fragment's  -->
<Button
android:id="@+id/firstFragment"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/button_background_color"
android:text="First Fragment"
android:textColor="@color/white"
android:textSize="20sp" />

<Button
android:id="@+id/secondFragment"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:background="@color/button_background_color"
android:text="Second Fragment"
android:textColor="@color/white"
android:textSize="20sp" />

<FrameLayout
android:id="@+id/frameLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="10dp" />
</LinearLayout>


Langkah 3: Buka src -> package -> MainActivity.java

Pada poin ini, buka MainActivity dan tambahkan kode untuk inisiasi Tombol. Setelah itu buat event "setOnClickListener" di kedua Button. Pada klik Tombol Pertama kita replace "First Fragment " dan saat klik Tombol Kedua kita akan replace "Second Fragment" dengan layout (FrameLayout). Untuk mengganti Fragment dengan FrameLayout pertama-tama kita buat Fragment Manager dan kemudian mulai transaksi menggunakan Fragment Transaction dan akhirnya replace Fragment dengan layout yaitu FrameLayout.

package com.monchoz.fragmentexample;

import android.app.Fragment;
import android.app.FragmentManager;
import android.app.FragmentTransaction;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class MainActivity extends AppCompatActivity {

Button firstFragment, secondFragment;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

// get the reference of Button's
firstFragment = (Button) findViewById(R.id.firstFragment);
secondFragment = (Button) findViewById(R.id.secondFragment);

// perform setOnClickListener event on First Button
firstFragment.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {

// load First Fragment
loadFragment(new FirstFragment());

}
});

// perform setOnClickListener event on Second Button
secondFragment.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {

// load Second Fragment
loadFragment(new SecondFragment());
}
});
}


private void loadFragment(Fragment fragment) {

// create a FragmentManager
FragmentManager fm = getFragmentManager();

// create a FragmentTransaction to begin the transaction and replace the Fragment
FragmentTransaction fragmentTransaction = fm.beginTransaction();

// replace the FrameLayout with new Fragment
fragmentTransaction.replace(R.id.frameLayout, fragment);
fragmentTransaction.commit(); // save the changes

}
}

Langkah 4: Sekarang kita membutuhkan 2 fragment dan 2 layout xml. Jadi buat dua fragment dengan cara klik kanan pada folder package dan buat class dan beri nama sebagai "FirstFragment" dan "SecondFragment" dan tambahkan kode berikut di masing-masing class fragment.

FirstFragment.class

package com.monchoz.fragmentexample;

import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.Toast;

public class FirstFragment extends Fragment {


View view;
Button firstButton;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
view = inflater.inflate(R.layout.fragment_first, container, false);
// get the reference of Button
firstButton = (Button) view.findViewById(R.id.firstButton);
// perform setOnClickListener on first Button
firstButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// display a message by using a Toast
Toast.makeText(getActivity(), "First Fragment", Toast.LENGTH_LONG).show();
}
});
return view;
}
}


Di Fragment ini pertama-tama kita inflate layout dan dapatkan referensi terhadap Button object. Setelah itu kita lakukan event setOnClickListener di Button sehingga setiap kali pengguna mengklik tombol dengan pesan "First Fragment" ditampilkan di layar dengan menggunakan Toast.

SecondFragment.class

Di Fragment ini pertama-tama kita inflate layout dan dapatkan referensi dari Button. Setelah itu kita tambahkan event setOnClickListener di Button sehingga setiap kali pengguna mengklik tombol, pesan "Second Fragment" ditampilkan di layar dengan menggunakan Toast.

package com.monchoz.fragmentexample;

import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.Toast;

public class SecondFragment extends Fragment {

View view;
Button secondButton;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {

// Inflate the layout for this fragment
view = inflater.inflate(R.layout.fragment_second, container, false);

// get the reference of Button
secondButton = (Button) view.findViewById(R.id.secondButton);

// perform setOnClickListener on second Button
secondButton.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {

// display a message by using a Toast
Toast.makeText(getActivity(), "Second Fragment", Toast.LENGTH_LONG).show();

}
});

return view;

}
}

Langkah 5: Sekarang buat 2 xml layout. Klik kanan pada res / layout -> New -> Layout Resource File dan beri nama sebagai fragment_first dan fragment_second dan tambahkan kode berikut di file masing-masing.

Di sini kita akan mendesain UI sederhana dasar dengan menggunakan TextView dan Button.

fragment_first.xml

<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="com.abhiandroid.fragmentexample.FirstFragment">

<!--TextView and Button displayed in First Fragment -->
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginTop="100dp"
android:text="This is First Fragment"
android:textColor="@color/black"
android:textSize="25sp" />

<Button
android:id="@+id/firstButton"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:background="@color/green"
android:text="First Fragment"
android:textColor="@color/white"
android:textSize="20sp"
android:textStyle="bold" />

</RelativeLayout>


fragment_second.xml

<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="com.abhiandroid.fragmentexample.SecondFragment">

<!--TextView and Button displayed in Second Fragment -->

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginTop="100dp"
android:text="This is Second Fragment"
android:textColor="@color/black"
android:textSize="25sp" />

<Button
android:id="@+id/secondButton"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:background="@color/green"
android:text="Second Fragment"
android:textColor="@color/white"
android:textSize="20sp"
android:textStyle="bold" />

</RelativeLayout>


Langkah 6: Buka res -> value -> colors.xml

Pada poin ini, kita akan mendefinisikan warna yang digunakan dalam file xml.

<?xml version="1.0" encoding="utf-8"?>
<resources>

<!-- color's used in our project -->
<color name="black">#000</color>
<color name="green">#0f0</color>
<color name="white">#fff</color>
<color name="button_background_color">#925</color>
</resources>


Langkah 7: Buka AndroidManifest.xml

Pada langkah ini, kita buka file Android Manifest yang sebenarnya tidak perlu kita edit sama sekali karena aplikasi ini hanya berisi satu Activitty yaitu MainActivity yang sudah didefinisikan di dalamnya. Dalam proyek ini, kita memang membuat dua Fragment tetapi kedua fragment tersebut tidak perlu didefinisikan dalam manifest karena fragment adalah bagian dari activity.

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

<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >

<activity
android:name=".MainActivity"
android:label="@string/app_name" >

<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />

</intent-filter>
</activity>
</application>
</manifest>


Langkah 8: Sekarang jalankan Aplikasi. Coba klik tombol pertama menampilkan "First Fragmen" dan klik Tombol Kedua menampilkan "Second Fragment" yang sebenarnya kita melakukan replace layout (FrameLayout).

Rabu, 05 September 2018

5 Langkah Memulai Pengembangan Aplikasi Android Untuk Pemula



Untuk kalian yang ingin belajar pemrograman android tentu ada satu pertanyaan besar yaitu, Saya harus memulainya dari mana?

Mempelajari kode cukup sulit apalagi kode pemrograman Android itu bisa lebih rumit lagi. Selain harus paham Java, kalian juga perlu menginstal semua perangkat lunak khusus Android dan mempelajari semua sintak unik dari pengembangan aplikasi Android.

Secara umum, membuat aplikasi Android membutuhkan SDK (Software Development Kit), sebuah IDE (Integrated Development Environment) yaitu Android Studio, Java Software Development Kit (JDK) dan perangkat virtual untuk testing aplikasi. Semua ini masih dalam tahapan persiapan, sebelum kalian mulai mencari hal-hal seperti Layanan Google Play, ukuran layar, API level dan seterusnya...

Hanya dengan mengetahui hal-hal yang saya sebutkan di atas saja itu sudah cukup untuk membuat banyak orang kalah sebelum bertanding. Jadi tujuan saya dengan artikel ini, adalah untuk memberikan panduan dengan pendekatan yang mudah dan simpel sehingga nantinya pemula bisa menciptakan aplikasi android dasar... Saya hanya akan menjelaskan hal penting yang harus kalian ketahui saja dan mengabaikan sisanya untuk dikembangkan lebih lanjut.

Langkah 1: Download Android Studio

Ada sebagian bahasa pemrograman yang merekomendasikan penggunaan perangkat lunak yang disebut IDE atau ‘Integrated Development Environment’. Dan pemrograman android adalah salah satunya. IDE standar untuk pengembangan Android adalah Android Studio, yang dirilis oleh Google sendiri.

IDE adalah tool utama tempat kalian nantinya menuliskan kode, menyoroti kode-kode yang salah, menawarkan saran dan memungkinkan menjalankan dan menguji aplikasi. Selain itu ia juga akan membuat file yang dibutuhkan dan menyediakan layout dasar.


Apa yang hebat dari IDE Android Studio ini adalah ia dirancang khusus untuk pemrograman Android (tidak seperti pilihan terpopuler sebelumnya, Eclipse). Jadi ketika kalian mengunduhnya, akan terdapat banyak komponen lain yang dibutuhkan termasuk SDK Android dan Perangkat Virtual Android emulator sebagai alat pengujian aplikasi kalian. Saat instalasi, pastikan membiarkan kotak dicentang untuk mengonfirmasi bahwa kalian menginginkan komponen tambahan ini.

Oke, sekarang Android Studio sudah diunduh dan selesai diinstal. Tapi, jangan jalankan dulu sebelum kalian membaca langkah kedua!

Langkah 2: Menyiapkan Android Studio

Sebelum dapat memulai, kalian juga perlu menginstal Java di komputer untuk menggunakan Android Studio. Secara khusus, kalian akan perlu menginstal Java Development Kit (JDK). Java adalah bahasa pemrograman yang akan digunakan untuk membangun aplikasi android. JDK diperlukan agar Android Studio dapat menafsirkan dan mengkompilasi kode (kompilasi berarti mengubah sumber kode menjadi sesuatu yang dipahami oleh CPU - kode mesin). Silahkan download Java Development Kit di sini. Cukup unduh dan ikuti petunjuk untuk memasang.

Jika selesai, klik Android Studio untuk menjalankannya. Setelah terbuka, kalian akan disajikan dengan menu untuk memulai atau mengonfigurasi beberapa opsi. Disini semua hal sudah ditangani secara otomatis oleh Android Studio, meskipun begitu cobalah membiasakan diri dengan SDK Manager (Configure> SDK Manager). Opsi ini berisi daftar pembaruan SDK Android agar mendukung versi yang lebih baru, serta mengunduh hal-hal seperti contoh kode atau dukungan untuk Google Glass. Jangan lakukan apapun kecuali ada notice penting dari IDE nya, lihat-lihat saja dulu.


Jadi sampai tahap ini, sebenarnya ada tiga hal utama yang berinteraksi ketika kalian menggunakan Android Studio untuk membuat aplikasi.

  • Android Studionya sendiri, yang merupakan IDE antarmuka untuk pengkodean.
  • Kode yang ditulis di Java, yang kalian pasang beberapa saat yang lalu ...
  • Dan SDK Android yang akan kalian akses melalui kode Java untuk melakukan hal-hal bertipe Android.

Langkah 3: Memulai Proyek Baru

Setelah puas jalan-jalan melihat SDK manager, segera kembalilah ke halaman pertama yang kalian lihat saat pertama kali menjalankan Android Studio. Oke mari kita mulai petualangan pertama membuat aplikasi androidnya!

Masukkan nama yang diinginkan untuk aplikasinya dan 'domain' kalian (nama domain bisa asal saja). Bersama-sama, elemen-elemen ini akan digunakan untuk membuat nama paket aplikasi dengan format berikut:

com.domain.namaaplikasi


Paket tersebut adalah file yang kelak di kemudian hari akan dikompilasi menjadi APK (Android Package File). Nah file APK inilah yang kita tahu adalah instaler khusus untuk aplikasi android dan APK ini juga yang nantinya bisa kalian unggah ke Google Play Store.

Bidang terakhir adalah direktori tempat dimana kalian ingin menyimpan semua file yang berkaitan dengan aplikasinya. Klik Next lagi dan tebak apa ... Opsi lagi masbro! haha

Selanjutnya pilih jenis perangkat apa yang akan dikembangkan dan dalam hal ini kita akan mulai dengan opsi "Phone and Tablet". Pilihan lainnya adalah TV, Wear, dan Glass. Abaikan saja dulu itu, kita akan mulai dengan sesuatu yang lebih mudah untuk memulainya, oke?


Pilihan lain yang harus dibuat pada tahap ini adalah "Minimum SDK". Opsi ini adalah untuk menentukan versi terendah Android yang ingin didukung. Mengapa tidak cukup memasukkan versi Android terbaru di sini? Yah, karena relatif sedikit orang yang benar-benar memiliki versi Android teranyar yang diinstal di perangkatnya. Aplikasi kalian sebisa mungkin bisa mendukung ponsel yang masih menjalankan versi lama tapi masih banyak penggunanya untuk menjangkau khalayak sebanyak mungkin - terutama di luar negeri. Saran saya bisa dimulai dari level API 16 sudah cukup.

Oke next lagi masbro!..Di tahap ini kalian akan diberi opsi untuk memilih bagaimana cara aplikasi kalian akan ditampilkan di awal. Ini akan menjadi tampilan dari apa yang dinamakan sebagai "Activity Module" utama yang pada dasarnya adalah halaman utama aplikasi kalian. Bayangkan ini seperti kalian sedang memilih template. Oke saya kira bagian ini tidak terlalu sulit untuk dipahami.


Ingat, aplikasi dapat memiliki beberapa "activity" yang bertindak seperti halaman terpisah layaknya situs web. Kalian nantinya akan memiliki activity "pengaturan" misalnya dan activity "main". Jadi, activity bukanlah aplikasi per kata, tetapi sekedar satu laman yang berdiri sendiri di dalam aplikasi kalian.

Untuk kali ini, kita akan membuat sesuatu yang sangat sederhana yang hanya menampilkan satu activity dasar. Pilih "Basic Activity". Klik Next lagi, oke ..oke saya paham kekesalan kalian yang gak sabar dari tadi Next melulu, tapi saya jamin deh ini adalah opsi terakhir.

Sekarang pilih nama untuk activity dan nama layout (jika memilih "Basic Activity" kalian juga akan memiliki opsi title dan nama "menu_resource"). Nama activity inilah yang nantinya akan merujuk ke activity di kode kalian, seperti contoh "SettingActivity" adalah activity untuk segala hal yang berkaitan dengan pengaturan dalam aplikasi.

Sementara itu nama layout nantinya akan merujuk ke file yang menentukan tata letak suatu activity. File ini adalah bagian terpisah dari kode namun berjalan bersama dengan kode activity untuk menentukan bagaimana elemen seperti gambar, menu dan font apa yang kalian gunakan. File layout ini sebenarnya bukan Java tetapi XML - atau Extensible Markup Language.


Bagi Mastah dengan latar belakang pengembangan web, XML akan berfungsi layaknya seperti HTML atau style sheet CSS. Semua tindakan user pada elemen-elemen layout di layar, nantinya akan dieksekusi oleh kode Java di activity. Untuk saat ini biarkan saja sebagai "activity_main". Terakhir, pilih nama untuk menu dan title. Title adalah judul yang akan dilihat pengguna di beberapa bagian dari aplikasi. Klik Next ... dan sekarang seperti janji saya, aplikasi kalian sudah bisa nampang dengan segala kenarsisannya!


Tapi aplikasi apaan neh OM! kosong hanya ada seupil tulisan geje... Sudah saya katakan, "semua ini hanya permulaan masbro" banyak-banyak bersabarlah. Lihatlah betapa banyak orang menyerah, kenapa? Kebanyakan pemula maunya cepat-cepat menjadi seorang expert. Saya dulu juga begitu, belajar android maunya langsung koding mau bikin aplikasi ini dan itu. Tetapi jika dasar saja kalian belum betul-betul memahaminya, maka kalian akan tergelincir masuk golongan "bingung pala pusing beib!".

Nah, sekarang kita kembali ke laptop. Sejauh ini kalian sudah melewati tahap pemahaman langkah-langkah dasar berikut ini:

  • Unduh dan pasang Android Studio, pastikan untuk menyertakan SDK Android.
  • Instal Java SDK.
  • Mulai proyek baru dan pilih "Basic Acivity".

Jadi,,ayo semangat wkwkwk.

Langkah 4: Membuat Hal Yang Sebenarnya

Setelah aplikasi terbuka, kalian akan melihat struktur direktori di sebelah kiri dengan semua file dan folder berbeda yang membentuk aplikasi dan gambar ponsel yang menampilkan kalimat ajaib "Hello World!".

Aplikasi simpel yang menampilkan 'Hello World' adalah apa yang paling pertama dibuat oleh pengembang baru ketika mereka belajar memprogram dalam bahasa baru apapun. Kalian memulai belajar PHP, pasti kode program pertamanya adalah "Hello World", begitupun belajar JAVA, PYTHON dll. Bahkan saya sendiri awalnya terkadang kesal juga karena saking banyaknya tutorial Hello World ini bertebaran di internet. Meskipun demikian saya mahfum, pondasi awal adalah awalan yang menentukan. So, ijinkan saya untuk menambah lagi tutorial aplikasi android "Hello world" ini.. haha

Jika memilih "Basic Activity" saat memulai proyek, kalian juga akan melihat file XML kedua yang disebut "content_main.xml". Untuk sebagian besar, keduanya melakukan hal yang sama tetapi "acitvity_main.xml" berisi layout dasar yang dibuat otomatis Android Studio saat kalian memilih "Basic Activity". Hal-hal yang ingin diedit ada di content_main.xml, jadi sekarang coba buka itu.

(Jika belum terbuka, gunakan direktori di sebelah kiri untuk membukanya dengan memilih: app> res> content_main.xml.

LAYOUT

Android Studio tidak menampilkan kode XML itu sendiri melainkan merender tentang bagaimana suatu layout akan muncul di layar ponsel. Layaknya editor visual seperti Dreamweaver untuk desain web.

Kalian juga memiliki banyak opsi yang disebut "widget" di bagian kiri yang dapat ditambahkan ke aplikasi. Jadi misalnya, kalian ingin menambahkan tombol bertuliskan "OK" ke dalam activity, cukup menyeretnya ke layar dan posisikan tepat di bawah "Hello World".

Hal lain yang bisa ditemukan adalah kalian dapat mengklik salah satu elemen ini untuk mengubah teks dan 'ID'. ID adalah tanda pengenal ke setiap elemen (disebut "view") dalam kode Java kalian, sedangkan teks tentu saja tulisan yang ditampilkan kepada pengguna.

Sekarang hapus widget "Hello World" dan lanjutkan ubah teks pada tombol menjadi "Hello?". Demikian juga, ubah "id" pada tombol menjadi "tombol1".

Mari kita mulai menulis program kecil… Perhatikan juga bahwa ketika memilih view, kalian mendapatkan opsi di kanan bawah untuk mengubah warna teks dan ukuran dll. Cobalah sebentar bermain-main dengan variabel-variabelnya jika kalian ingin mengubah tampilan tombol.

Sekarang buka MainActivity.java. Tab ada di bagian atas tetapi jika tab ditutup, cari di bagian: App> Java.

Ini adalah kode yang mendefinisikan perilaku aplikasi kalian. Pada tahap ini, saya hanya akan menambahkan sedikit bagian kode:

JAVA


public void buttonOnClick(View v) {
Button button1 = (Button) v;
((Button) v).setText("Hello!");
}


Posisikan kira-kira tepat di bawah baris pertama yang ditutup dengan "}", tepat sebelum "@Override, Public Boolean". Seharusnya terlihat seperti ini:


Apa artinya kode tadi OM? Gini yah, pada dasarnya, dengan kode "void buttonOnClick" maka hal tersebut akan memprogram suatu tindakan jika seseorang mengklik tombol. Android kemudian akan mencari tombol dengan dengan kode "Button button1 = (Button) v;" dan kemudian melakukan eksekusi mengubah teks.

Ya, ada cara lain kalian dapat melakukan hal yang sama tetapi saya merasa cara seperti ini lebih bagus, simpel dan mudah dimengerti.

Perhatikan juga di bagian atas halaman adalah kata "impor ...". Klik untuk melihat dan memastikan bahwa disitu ada kalimat: "import android.widget.Button;". Meskipun seharusnya muncul dengan sendirinya ketika kalian mengetik "button", tetapi sekedar berjaga-jaga saja jika tidak ada kalian tambahkan sendiri.

Perhatikan ketika mengetikkan baris kode harus diakhiri dengan ";". Ini adalah pemformatan Java dasar dan jika kalian melupakannya, maka akan menimbulkan pesan error!

Sekarang kembali ke content_main.xml dan klik tombolnya. Di sudut kanan adalah tempat semua parameter untuk tombol ini, disini kalian cari opsi bernama "onClick". Klik dan kemudian pilih baris kode "onClick" dari menu drop down. Yang baru kalian lakukan adalah memberitahu Android Studio bahwa kalian ingin mengaitkan bagian kode java dengan tombol yang dibuat.

Sekarang bagian terakhir adalah menjalankan aplikasi yang baru saja kalian buat. Cari tulisan "run" di bagian atas dan kemudian pilih "run app" dari menu dropdown. Oh ya, sebelumnya kalian harus menginstal AVD (Android Virtual Device). Caranya pergi ke: tools > Android > AVD Manager > + Create Virtual Device.



Selanjutnya ikuti langkah-langkah untuk menjalankan emulator. Lagi-lagi bersabarlah, terkadang dan amat sering proses ini butuh waktu lama untuk memuat virtual device androidnya (tergantung kemampuan PC kalian) ... Cara lain adalah koneksikan ponsel android kalian ke PC. Jalankan testing aplikasi langsung di ponsel android adalah cara lain jika menjalankan emulator virtual device terlalu membebani PC.

Langkah 5: Cara Untuk Menjadi Lebih Baik Dalam Pemrograman Aplikasi Android

Oke, saat ini aplikasi yang kalian buat dengan susah payah bermandikan keringat dan air mata masih jauh panggang dari api untuk layak dikatakan sebagai aplikasi android. Motivasi saya mengajak kalian melewati tahapan melelahkan di atas adalah mengajarkan dasar-dasar pemrograman android.

Jadi selanjutnya bagaimana OM? Masih banyak lagi yang harus dipelajari: kalian masih belum melihat Android Manifest, belum membahas tentang "private keysign" dan bahkan belum mempelajari apa yang dinamakan dengan "Android app lifecycle". Selain itu kalian juga pasti akan menghadapi permasalahan dengan dukungan terhadap berbagai ukuran layar dan sebagainya...

Tetapi yang lebih penting saat ini adalah cobalah hanya bermain-main dengan kode dan mencoba berbagai hal. Di hari pertama kalian berkenalan dengan pemrograman android, janganlah dulu punya pikiran "aku mau buat aplikasi ini dan itu". Sebaliknya, fokuslah untuk membuat sesuatu yang sederhana, simpel dan kemudian dari situ kembangkan. Coba ubah tata letak teks dan coba tambahkan lebih banyak tombol dan lebih banyak logic code untuk membuat aplikasi yang benar-benar berguna.

Demikian juga, cobalah beberapa contoh kode yang tersedia di Android Studio. Pelajari cara kerjanya, cobalah mengubah kode dan bereksperimen. Jangan panik! jika ada sesuatu yang salah, maka pesan kesalahan akan muncul. Cermati petunjuk kesalahannya, lalu sebisanya pecahkan problem kasalahannya. Saya kira jika kalian telaten menggunakan teknik belajar pemrograman android seperti ini, yakin deh lama-lama juga akan terbiasa dengan baris kodingnya. Kenapa saya yakin, karena sudah mengalaminya tentu saja. Kita semua disini belajar bersama, tentunya dengan cara yang kita bisa namun hasil akhirnya adalah poin utamanya. Ok Mas dan Mbak Bro.. Ayo semangat!, kurang lebihnya saya minta maaf jika penjelasannya masih ada kekurangan di sana sini.