Struktur & Pemakaian Teknologi Game Pembuatan Activity
Activity Suatu Activity mewakili satu layar tunggal sebagai UI. Masing-masing Activity berdiri sendiri. Suatu Aplikasi dapat terdiri dari beberapa Activity Activity-activity bekerjasama membentuk user experience pada suatu aplkasi. Activity perlu didaftarkan pada Android- Manifest.xml Activity Manager bertanggung jawab untuk creating, destroying, dan manage activities.
Activity Life Cycle Activity-activity dalam sistem diatur pada suatu activity stack. Ketika suatu activity dijalankan, dia akan ditempatkan pada posisi teratas didalam stack dan menjadi activity yang sedang berjalan. Activity sebelumnya berada dibawahnya didalam stack, dan tidak akan kembali ke foreground sampai dengan Activity diatasnya berakhir
4 State Activity l l l l Jika suatu Activity berada di foreground dari layar (pada bagian teratas dari Stack), dia adalah aktif dan sedang Running. Jika suatu Activity kehilangan fokus tetapi masih Visible (Tidak fullscreen atau Ada activity transparant lain diatasnya), maka dia sedang dalam kondisi pause. Suatu pause Activity masih hidup (tetap menangani state dan informasi serta tetap berada pada Window Manager), tetapi tetap dapat diakhiri oleh sistem jika berada dalam situasi kekurangan memori. Jika suatu Activity benar2 tidak kelihatan oleh aplikasi lainnya, dia adalah berada pada kondisi Stop, dia tetap mempertahankan semua state dan informasi tetao tidak Visible bagi pemakai, dan akan diakhiri oleh sistim jika berada dalam situasi kekurangan memori. Jika suatu activity dalam kondisi Pause atau Stop, sistem dapat membuang Activity tersebut dari memori dengan meminta dia untuk selesai, atau dengan membuangnya dari memori, ketika dia ditampilkan kembali ke user, dia harus benar-benar mulai dari awal dan mengembalikan dirinya ke state sebelumnya.
public class SegitigaActivity extends Activity { /** Called when the activity is first created. */ public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.main); System.out.println("onCreate"); protected void onstart() { // TODO Auto-generated method stub super.onstart(); System.out.println("onStart"); protected void onrestart() { // TODO Auto-generated method stub super.onrestart(); System.out.println("onReStart"); Jalankan aplikasi disamping ini, kemudian aktifkan DDMS untuk mengamati Event2 yang terjadi pada suatu activity. protected void onresume() { // TODO Auto-generated method stub super.onresume(); System.out.println("onResume"); protected void onpause() { // TODO Auto-generated method stub super.onpause(); System.out.println("onPause"); protected void onstop() { // TODO Auto-generated method stub super.onstop(); System.out.println("onStop"); protected void ondestroy() { // TODO Auto-generated method stub super.ondestroy(); System.out.println("onDestory");
Pembuatan Activity 1.Menyiapkan Resources 2.Membuat Layout 3.Membuat Activity Class 4.Mendaftarkan Activity ke Android Manifest
Pembuatan Resources <?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">segitiga</string> <string name="lblpanjang">panjang</string> <string name="lbllebar">lebar</string> <string name="lblhitung">hitung</string> <string name="lblnone">belum ada Hasil</string> <string name="lblhasil">hasil hitung adalah %1$.2f</string> </resources>
Pembuatan Layout <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <TextView android:text="@string/lblpanjang" android:layout_height="wrap_content" android:id="@+id/textview1" android:layout_width="wrap_content"></textview> <EditText android:layout_height="wrap_content" android:layout_width="match_parent" android:id="@+id/editpanjang"> <requestfocus></requestfocus> </EditText> <TextView android:text="@string/lbllebar" android:layout_height="wrap_content" android:id="@+id/textview2" android:layout_width="wrap_content"></textview> <EditText android:layout_height="wrap_content" android:layout_width="match_parent" android:id="@+id/editlebar"></edittext> <Button android:text="@string/lblhitung" android:id="@+id/button1" android:layout_height="wrap_content" android:layout_width="wrap_content"></button> <TextView android:textappearance="?android:attr/textappearancelarge" android:layout_height="wrap_content" android:layout_width="wrap_content" android:text="@string/lblnone" android:id="@+id/texthasil"></textview> </LinearLayout>
Aplikasi Java package com.example;; import android.app.activity;; import android.os.bundle;; public class SegitigaActivity extends Activity { /** Called when the activity is first created. */ public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate);; setcontentview(r.layout.main);; Package, sesuai dengan Package dimana aplikasi Java berada Class SegitigaActivity (sesuai dengan nama file SegitigaActivity.java) Extends Activity (mewarisi semua prilaku dari Super Class Activity) (menulis ulang method oncreate) Super.onCreate (memanggil method oncreate pada SuperClass, dalam hal ini Activity)
Mengakses Widget dengan Java public void hitungonclick(view target) { TextView panjang = (TextView) findviewbyid(r.id.editpanjang); TextView lebar = (TextView) findviewbyid(r.id.editlebar); TextView hasil = (TextView) findviewbyid(r.id.texthasil); Double npanjang = Double.parseDouble(panjang.getText().toString()); Double nlebar = Double.parseDouble(lebar.getText().toString()); Double nhasil = npanjang * nlebar; Resources res = getresources(); hasil.settext(string.format(res.getstring(r.string.lblhasil),nhasil)); findviewbyid(viewid), mengambil object View berdasarkan ViewId TextView panjang = (TextView) findviewbyid(r.id.editpanjang); Deklarasi variable Panjang yang merupakan Object TextView. (TextView) findviewbyid(...) Hasil object View di casting menjadi TextView
Source Code Activity package com.example;; import android.app.activity;; import android.content.res.resources;; import android.os.bundle;; import android.view.view;; import android.widget.textview;; public class SegitigaActivity extends Activity { /** Called when the activity is first created. */ public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate);; setcontentview(r.layout.main);; <?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">segitiga</string> <string name="lblpanjang">panjang</string> <string name="lbllebar">lebar</string> <string name="lblhitung">hitung</string> <string name="lblnone">belum ada Hasil</string> <string name="lblhasil">hasil hitung adalah %1$.2f</string> </resources> public void hitungonclick(view target) { TextView panjang = (TextView) findviewbyid(r.id.editpanjang);; TextView lebar = (TextView) findviewbyid(r.id.editlebar);; TextView hasil = (TextView) findviewbyid(r.id.texthasil);; Double npanjang = Double.parseDouble(panjang.getText().toString());; Double nlebar = Double.parseDouble(lebar.getText().toString());; Double nhasil = npanjang * nlebar;; Resources res = getresources();; hasil.settext(string.format(res.getstring(r.string.lblhasil),nhasil));;
Set On click
Android Manifest Merupakan file XML yang berisi informasi terkait dengan aplikasi Anda. <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.hendra" android:versioncode="1" android:versionname="1.0"> <uses-sdk android:minsdkversion="10" /> <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".segitigaactivity" 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> Didalam application dapat memiliki beberapa Activity, dan hanya ada satu activity dengan jenis android.intent.action.main dan android.intent.category.launcher.
Latihan Buatlah aplikasi Android yang dapat menghitung Luas lingkaran Buatlah aplikasi Android yang dapat melakukan konversi suhu Celcius ke Farenheit
Sekian & Terima Kasih