Anda di halaman 1dari 25

Pemrograman Piranti Bergerak

Pembuatan Activity

Rida Utami
Dosen UPU
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.
Quiz
Pernyataan2 berikut ini yang benar adalah:
a. Suatu Activity adalah satu layar tunggal sebagai UI.
b. Suatu Activity dikendalikan oleh Activity Manager.
c. Masing-masing Activity bergantung satu sama yang
lain
d. Activity-activity bekerjasama membentuk user
experience
e. Activity tidak perlu didaftarkan pada Android-
Manifest.xml
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
Quiz
Berikut ini yang bukan merupakan event pada Siklus hidup Activity:
a. onCreate
b. onInitialize
c. onStart
d. onResume
e. onPause
d. onStop
e. onResume
f. onDetruct
g. onDestroy
4 State Activity

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.
Quiz
Pernyataan berikut ini yang salah adalah:
a. Ketika suatu Activity berada pada posisi teratas pada Stack,
maka Activity tersebut berada pada kondisi Running
b. Ketika suatu Activity ditimpa oleh Activity transparent atau tidak
full screen, maka Activity tersebut berada pada kondisi Stop.
c. Ketika suatu Activity berada dibawah Activity lain dan tidak
visible, maka Activity tersebut berada pada kondisi Pause.
d. Activity pada kondisi Pause dan Stop, dapat diakhiri Activity
Manager jika berada pada kondisi kekurangan memori.
e. Activity yang telah dibuang dari memori, maka jika diaktifkan
harus mulai dari awal kembali.
public class SegitigaActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
System.out.println("onCreate");
}

@Override
protected void onStart() {
// TODO Auto-generated method stub
super.onStart();
System.out.println("onStart");
}
Jalankan aplikasi disamping ini,
@Override
protected void onRestart() { kemudian aktifkan DDMS untuk
// TODO Auto-generated method stub
super.onRestart(); mengamati Event2 yang terjadi
}
System.out.println("onReStart");
pada suatu activity.
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
System.out.println("onResume");
}

@Override
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
System.out.println("onPause");
}

@Override
protected void onStop() {
// TODO Auto-generated method stub
super.onStop();
System.out.println("onStop");
}

@Override
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
System.out.println("onDestory");
}

}
Quiz
Ketika suatu Activity di LAUNCH, tentukan urutan
dari pengaktifan Method:
a. onCreate, onStart, onRestart
b. onCreate, onPause, onStart
c. onCreate, onRestart, onStart
d. onCreate, onStart, onResume
e. onCreate, onResume, onStart
Quiz
Ketika suatu Activity ditimpa oleh Activity lainnya
terjadi event:
a. onPause, onDestroy
b. onResume, onPause
c. onStop, onPause
d. onResume, onPause
e. onPause, onStop
Quiz
Ketika suatu Activity kembali aktif, metode yang
terjadi adalah:
a. onCreate, onStart, onRestart
b. onCreate, onPause, onStart
c. onCreate, onRestart, onStart
d. onCreate, onStart, onResume
e. onRestart, onStart, onResume
Quiz
Ketika suatu Activity diakhiri terjadi event:
a. onPause, onStop, onDestroy
b. onResume, onPause, onDestroy
c. onStop, onPause, onDestroy
d. onResume, onPause, onDestroy
e. onPause, onStop, onDestroy
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>
Quiz
Widget yang digunakan pada
layout berikut ini terdiri dari:
…..........................
Aplikasi Java
package com.potensi;

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

public class SegitigaActivity extends Activity {


/** Called when the activity is first created. */
@Override
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)
@Override (menulis ulang method onCreate)
Super.onCreate (memanggil method onCreate pada SuperClass, dalam hal ini Activity)
Quiz
Pernyataan berikut ini yang benar adalah:
a. Setiap Activity adalah Subclass dari Activity
b. setContentView(R.layout.main); untuk
menentukan layout yang digunakan sebagai UI
Activity.
c. super.onCreate(savedInstanceState); bersifat
optional
d. Semua Activity diatur oleh ActivityManager
e. Anda perlu import android.app.Activity; dan
import android.os.Bundle;
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
Quiz
Pernyataan berikut ini yang benar adalah:
a. TextView panjang, mendeklarasikan suatu variable panjang yang
bertipe object TextView
b. findViewById(R.id.editPanjang); Mengembalikan object yang memiliki
nama @+id/editPanjang pada resource Layout
c. (TextView) findViewById(R.id.editPanjang); object dicasting menjadi
object TextView
d. panjang.getText().toString(), mengambil string dari object yang
direferensikan pada variable panjang
e. Double.parseDouble(...), konversi string menjadi Double
f. Resources res = getResources();, variable res mengacu kepada Object
Resource
g. hasil.setText(...), set Text pada object yang direferensikan pada
variabel hasil
Source Code Activity
package com.potensi; <?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Segitiga</string>
<string
import android.app.Activity; name="lblPanjang">Panjang</string>
import android.content.res.Resources; <string name="lblLebar">Lebar</string>
import android.os.Bundle; <string name="lblHitung">Hitung</string>
import android.view.View; <string name="lblNone">Belum ada
import android.widget.TextView; Hasil</string>
<string name="lblHasil">Hasil hitung
adalah %1$.2f</string>
</resources>
public class SegitigaActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}

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.potensi"
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
Sekian & Terima Kasih

Anda mungkin juga menyukai