KOMPONEN DASAR ANDROID
ACTIVITY
Pengertian Activity
Activity adalah komponen pada aplikasi Android yang menampilkan dan mengatur halaman aplikasi sebagai tempat interaksi antara pengguna dengan aplikasi, seperti membuat panggilan telepon, mengambil foto, mengirim pesan singkat, atau mengirim email. Sebuah Activity mengatur satu halaman user interface aplikasi. Sehingga jika sebuah aplikasi Android memiliki beberapa halaman user interface yang saling berinteraksi, berarti aplikasi tersebut memiliki beberapa Activity yang saling berinteraksi.
Activity merupakan salah satu komponen penting Android yang memiliki daur hidup (life cycle) dalam sebuah stack pada virtual sandbox yang disiapkan oleh Dalvik Virtual Machine (DVM) atau Android Runtime (ART) yang bersifat last in first out
Pada implementasinya, activity selalu memiliki satu layout user interface dalam bentuk berkas xml. Suatu aplikasi. Android bisa memiliki lebih dari satu activity dan harus terdaftar di berkas AndroidManifest.xml sebagai sub aplikasi
Konsep Last In, First Out
Saya coba jelaskan fase-fase di atas beserta contoh implementasinya pada aplikasi Whatsapp. Kita sepakati dulu halaman utama yang berisi list pesan dan grup disebut activity 1 dan halaman pesan disebut activity 2
- onCreate () yaitu fase ketika activity pertama kali diciptakan. misalnya ketika user tap icon aplikasi Whatsapp maka onCreate () akan dipanggil dan selalu diikuti dengan onStart ().
- onStart () yaitu fase yang dipanggil setelah onCreate (). Fase ini berlangsung cepat, membuat activity menjadi muncul pada layar. Pada fase ini user diarahkan ke tampilan halaman utama aplikasi Whatsapp.
- onResume () fase ini merupakan fase ketika user berinteraksi dengan dengan activity yang sedang berjalan. Contohnya ketika user men-scroll halaman utama aplikasi Whatsapp. Jika tiba-tiba ada interupsi masuk seperti saat ada panggilan telepon masuk, maka activity akan beralih ke posisi onPause (). Fase onResume () selalu diikuti onPause ().
- onPause () fase ini dipanggil ketika user meninggalkan suatu activity, fase ini berlangsung cepat sampai activity tidak lagi terlihat oleh user ( onStop () ).
- onStop () pada fase ini activity benar-benar tidak terlihat dan user tidak dapat berinteraksi dengan activity misalnya ketika berpindah activity. Ambil contoh ketika user di halaman utama Whatsapp (activity 1) kemudian berpindah ke halaman pesan (activity 2) maka activity 1 menjadi tidak terlihat dan activity 2 menjadi terlihat.
- onDestroy () pada fase ini activity dihancurkan. Contohnya saat user berada pada activity 2 (halaman pesan) kemudian kembali ke activity 1 (halaman utama) dengan menekan tombol back maka activity 2 (halaman pesan) akan dihancurkan.
- onRestart () fase ini terjadi ketika activity yang berada di posisi onStop () dipanggil kembali. Contohnya saat user kembali ke activity 1 (halaman utama) dari activity 2 (halaman pesan) aplikasi whatsapp maka activity 2 diarahkan ke onDestroy () dan activity 1 menuju onRestart (). fase ini selalu diikuti onStart().
Dari penjelasan diatas dapat kita lihat bahwa activity 2 masuk terakhir (last in) sehingga berada di stack teratas. Kemudian ketika user kembali ke activity 1 maka activity 2 menjadi aktivity yang pertama keluar dari stack (first out). Itulah konsep LIFO pada Android activity lifecycle.
1. Gambar 1
Jika Anda memiliki sebuah aplikasi yang terdiri dari 2 activity, maka activity pertama akan dijalankan setelah pengguna meluncurkan aplikasi melalui ikon aplikasi di layar device. Activity yang ada saat ini berada pada posisi activity running setelah melalui beberapa state onCreate ( created ) → onStart started ) → onResume (resumed) dan masuk ke dalam sebuah stack Bila pada activity pertama Anda menekan sebuah tombol untuk menjalankan activity kedua, maka posisi state dari activity pertama berada pada posisi stop . Saat itu, callback onStop() pada activity pertama akan dipanggil. Ini terjadi karena activity pertama sudah tidak berada pada layar foreground / tidak lagi ditampilkan. Semua informasi terakhir pada activity pertama akan disimpan secara otomatis.
Sementara itu , activity kedua masuk ke dalam stack dan menjadi activity terakhir yang masuk.
2. Gambar 2
Activity kedua sudah muncul di layar sekarang. Ketika Anda menekan tombol back pada physical button menu utama atau menjalankan metode finish()finish(), maka activity kedua Anda akan dikeluarkan dari stack Pada kondisi di atas, state activity kedua akan berada pada destroy. Oleh karenanya, metode onDestroy() akan dipanggil. Kejadian keluar dan masuk stack pada proses di atas menandakan sebuah model Last In, First Out Activity kedua menjadi yang terakhir masuk stack Last In ) dan yang paling pertama keluar dari stack First Out
3. Gambar 3
Activity Pertama akan dimunculkan kembali di layar setelah melalui beberapa state dengan rangkaian callback method yang terpanggil, onStop → onRestart → onStart → onResume.
Latihan Sederhana Penggunaan Activity
Tujuan
bertujuan untuk mengimplementasikan komponen activity pada aplikasi pertama yang akan bangun. Harapannya aktifitas ini dapat memberi gambaran yang jelas tentang cara kerja activity.
Logika Dasar
Melakukan input ke dalam obyek TextBox → melakukan validasi input → melakukan perhitungan volume balok ketika tombol hitung diklik maka tampil hasil perhitungan.
Berikut flow umumnya.
1. Ngoding Layout untuk user interface aplikasi
2. Ngoding Activity untuk menambahkan logika aplikasi
1. Silakan klik tab file activity_main.xml pada workspace Anda( res/Layout/activity_main.xml ), dan tambahkan baris baris berikut:
Akan muncul warning pada atribut android:text pada layout tersebut. Ini karena kita melakukan hardcoding pada nilai string nya. Mari kita hilangkan code warning tersebut dengan menekan Alt+Enter pada attribut android:text
Akan muncul dialog seperti ini, pilihlah extract string resource.
Kemudian akan muncul dialog seperti di bawah ini. Sesuaikan dengan nama yang ada.
Fungsi extract string resource akan secara otomatis menambahkan nilai dari android:text ke dalam berkas res → values → strings.xml . Lakukan hal yang sama pada view lainnya hingga tidak ada warning lagi.
Jika kita buka berkasstrings.xml , maka isinya akan menjadi seperti ini :
1.<resources>
2.<string name="app_name">BarVolume</string>
3.<string name="lebar">Lebar</string>
4.<string name="tinggi">Tinggi</string>
5.<string name="hitung">Hitung</string>
6.<string name="hasil">Hasil</string>
7.<string name="panjang">panjang</string>
8.</resources>
Jika terjadi kesalahan pada atribut dimens , maka kita perlu menambahkan berkas dimens.xml di
dalam res → values → dimens.xml . Kesalahan ini disebabkan karena pada Android Studio 2.3, berkas dimens.xml sudah tidak dibuat secara otomatis.
Langsung saja tambahkan dengan cara Klik Kanan pada directory res . Akan muncul dialog seperti ini.
Kemudian isi sesuai di bawah ini.
Jika berkas dimens.xml sudah dibuat, sesuaikan isinya menjadi seperti berikut.
1.<resources>
2. <!--Default screen margins, per the Android Design guidelines.-->
3.<dimen name="activity_horizontal_margin">16dp</dimen>
4.<dimen name="activity_vertical_margin">16dp</dimen>
5.</resources>
Menambahkan Kode Logika Sederhana pada MainActivity
Selanjutnya setelah selesai, lanjutkan dengan membuka berkas MainActivity.java dan lanjutkan ngoding baris baris dibawah ini.
Jika terdapat baris merah seperti ini :
Jangan khawatir! Silakan klik di atas baris merah tersebut dan klik pada ikon bola lampu Atau dengan tekan tombol Alt + Enter lalu pilih implements method
Setelah selesai, silakan jalankan aplikasi dengan memilih menu Run → Run ‘app’ dari menu bar.
Tidak ada komentar:
Posting Komentar