08 Februari 2012

Activity: Membuat Activity

Untuk membuat sebuah activity, kita harus membuat sebuah subclass dari Activity (atau subclass yang sudah ada). Dalam subclass yang dibuat, kita harus mengimplementasikan metode pemanggilan kembali yang akan dipanggil sistem pada saat transisi antar state (keadaan) yang bervariasi dari siklus hidupnya, misalnya ketika activiti sedang dibuat, dihentikan, dikembalikan, atau dihancurkan.

Metode pemanggilan kembali yang paling penting ada dua, yaitu:

onCreate()
Kita harus mengimplementasikan metode ini. Sistem akan memanggil metode ini ketika membuat activity. Dalam implementasi kita, kita harus menginisialisasikan komponen-komponen penting dari activity kita. Yang paling penting, di sinilah kita harus memanggil metode setContentView() untuk mendefinisikan layout dari user interface activity.
onPause()
Sistem akan memanggil metoded ini sebagai indikasi pertama bahwa user sedang meninggalkan activity kita (meskipun tidak selalu activity tersebut akan dihancurkan). Di sinilah biasanya kita harus melakukan perubahan yang mesti bertahan diluar sesi user yang sekarang. (karena user mungkin tidak akan kembali).
terdapat beberapa siklus metode pemanggilan kembali yang harus kita gunakan untuk menyediakan pengalaman user interface yang halus dan lancar antar activity dan menangani interupsi yang tidak diinginkan yang dapat menghentikan activity atau bahkan dapat menghancurkan activity.


Implementasi user interface

User interface untuk sebuah activity disediakan oleh sebuah hierarki views (tampilan-tampilan)--yaitu obyek yang diturunkan dari class View. Setiap view mengatur area tertentu dalam window activity dan bisa merespon interaksi dari user. Contohnya, sebuah view bisa saja berupa tombol yang memulai sebuah aksi bila menyentuhnya.

Android menyediakan beragam view siap pakai yang bisa digunakan untuk mendesain dan mengatur layout. "Widget" adalah view yang menyediakan elemen visual (dan interaktif) untuk layar, mislanya, tombol, text field, checkbox, atau sebuah gambar. "Layout" adalah view yang diturunkan dari ViewGroup yang menyediakan model layout unik untuk turunan view, misalnya sebuah linear layout, grid layout, atau relative layout. Kita juga bisa membuat subclass di class View dan ViewGroup (atau menggunakan subclas yang sudah ada) untuk membuat widget dan layout kita sendiri dan menerapkannya ke dalam layout activity kita.

Cara paling umum untuk mendefinisikan sebuah layout menggunakan view adalah dengan sebuah file layout XML yang disimpan dalam sumber daya aplikasi. Dengan cara ini, kita bisa mempertahankan dan merawat desain dari user interface kita terpisah dari source code yang mendefinisikan tingkah laku dari activity. Kita bisa men-setting layout tersebut sebagai User Interface untuk activity kita dengan menggunakan setContentView(), dengan mengoperkan ID sumberdaya (resource ID) dari layout tersebut. Kita juga bisa membuat View dalam kode activity kita dan membuat sebuah hierarki tampilan dengan memasukan View baru ke dalam ViewGroup, kemudian menggunakan layout itu dengan mengoperkan ViewGroup teratas ke setContentView()


Mendeklarasikan activity di AndroidManifest.xml

Agar activity bisa diakses oleh sistem, kita harus mendeklarasikan activity tersebut di file AndroidManifest.xml. Untuk mendeklarasikan activity, buka file AndroidManifest.xml dan tambahkan elemen <activity> sebagai "anak" dari elemen <application>. Perhatikan contoh berikut:

<manifest ... >
   <application ... >
      <activity android:name=".ContohActivity" />
      ...
   </application ... >
   ...
</manifest >

Ada beberapa atribut lain yang bisa kita masukan dalam elemen ini, misalnya sebagai label untuk activity, icon untuk activity, atau tema untuk memperindah user interface activity. Atribut android:name adalah satu-satunya atribut yang harus ada. Atribut ini menunjukan nama class dari activity. Jika kita telah mem-publish aplikasi kita, kita tidak boleh merubah nama activity ini, karena jika kita rubah, bisa merusak beberapa fungsi pada aplikasi. Misalnya shortcut aplikasi.


Menggunakan intent filter

Sebuah elemen <activity> juga bisa memberikan keterangan mengenai intent-filter, yaitu keterangan mengenai bagaimana komponen dari aplikasi lain bisa mengaktifkan activity ini. Keterangan mengenai intent-filter ditulis di dalam elemen &lr;intent-filter>.

Ketika kita membuat sebuah aplikasi baru menggunakan Android SDK tools, potongan activity yang dibuatkan untuk kita secara otomatis memasukan sebuah intent filter yang mendekalrasikan respon activity terhadap "main action" dan harus ditempatkan di kategori "launcher". Intent filter tersebut terlihat seperti berikut:

<activity android:name=".ContohActivity" android:icon="@drawable/icon_aplikasi" >
   <intent-filter>
      <action android:name="android.intent.action.MAIN" />
      <category android:name="android.intent.category.LAUNCHER" />
   </intent-filter>
</activity>

Elemen <action> memberikan keterangan bahwa ini adalah pintu masuk utama ("main") ke dalam aplikasi. Elemen <category> memberikan keterangan bahwa activity ini harus dimasukan ke dalam daftar peluncur aplikasi (application launcher) milik sistem agar user bisa menjalankan / meluncurkan aplikasi ini.

Jika kita menginginkan agar aplikasi kita tertutup dan tidak bisa diaktifksn oleh aplikasi lain, maka kita tidak membutuhkan intent filter lain. Hanya satu activity yang boleh memiliki "main action" dan "launcher category" , seperti pada contoh sebelumnya. Activity-activity yang tidak ingin kita buka terhadap aplikasi lain, tidak perlu menerapkan intent-filter, dan kita bisa memnjalankan activity tersebut dengan eksplicit intent.

Namun bagaimanapun, jika kita ingin activity kita merespon terhadap intent yang tersirat (implicit intent) yang dikirimkan oleh aplikasi lain (atau aplikasi kita sendiri), maka kita harus mendefinisikan intent filter tambahan ke dalam activity kita. Untuk setiap tipe intent yang ingin kita respon, kita harus memasukan sebuah <intent-filter> yang di dalamnya mengandung elemen <action>, elemen <category> (optional), dan atau elemen <data>. Elemen-elemen tersebut memberikan keterangan tentang jenis dan tipe intent yang bisa direspon activity kita.



Tidak ada komentar:

Posting Komentar