TUGAS
MOBILE PROGRAMMING
Makalah
Menu intent dan Activity Android

Disusun
Oleh :
Yusep
Muhamad Saefudin 1134065
PROGRAM DIPLOMA IV TEKNIK INFORMATIKA
POLITEKNIK POS INDONESIA
BANDUNG
2015
KATA
PENGANTAR
Syukur alhamdulillah segala puji bagi Allah SWT. Tuhan
semesta alam yang telah melimpah kan rahmat dan karunia nya sehingga penulis
berhasil menyusun makalah ini yang bertema “Menu intent dan Activity Android’’.
Walaupun dalam proses penyusunan makalah ini penulis mendapat kan beberapa hambatan
dan masalah tetapi dengan bantuan beberapa pihak akhir nya penulis berhasil
menyusun makalah ini.
Makalah ini di buat sebagai tugas dari mata kuliah
mobile programming, semester genap dan juga di gunakan sebagai pelengkap materi
diskusi yang akan di laksana kan ketika jam pelajaran mobile programming.
Semoga makalah ini dapat bermanfaat bagi pembaca.
Penulis menyadari bahwa dalam penyusunan makalah ini masih banyak terdapat
kesalahan dan kekurangan, oleh karna kritik dan saran dari pembaca sangat di
harap kan dan akan di terima penulis dengan senang hati demi penyempurnaan
makalah ini di masa mendatang.
Bandung, Mei 2015
Penulis
BAB
I
PENDAHULUAN
1.1
Latar Belakang Masalah
Intent merupakan suatu objek yang
terdapat dalam suatu activity dimana objek tersebut dalam berkomunikasi dengan
activity lain, baik pada fungsi internal android maupun memanggil activity
dalam satu package atau beda package yang masih dalam satu project maupun beda
project.
Activity adalah sebuah window yang
berisi user interface dari aplikasi yang kita buat. Setiap aplikasi dapat
memiliki lebih dari satu activity, namun tidak dipungkiri pula aplikasi dapat
berjalan meskipun tanpa activity, contoh : aplikasi yang berjalan pada
background service. Tujuan utama dari adanya activity itu sendiri sebenarnya
hanyalah untuk menampilkan user interface yang digunakan user agar dapat berinteraksi dengan aplikasi.
Pada suatu saat activity pasti akan
tampil, tersembunyi, atau bahkan berhenti. Itulah yang dinamakan daur hidup
(life cycle) dari activity. Memahami daur hidup activity sangatlah penting bagi
segala tipe developer Android untuk memastikan aplikasi dapat berjalan secara
baik dan benar #cieee. Ok, tidak panjang lebar ya ; pada tutorial ini saya akan
menjelaskan lebih detail bersamaan dengan praktek coding untuk menjelaskan daur
hidup (life cycle) dari activity di android.
Memahami Siklus Activty pada
aplikasi Android. Aplikasi Android merupakan kumpulan dari beberapa Activity
yang tergabung secara bebas dengan Activity satu degan yang lainnya. yang mana
kupulan tersebut memiliki satu Activity utama yang digunakan untuk memanggil
Activitylainnya secara bertumpuk.
Activity adalah suatu komponen pada
aplikasi Android yang menyediakan tampilan, sehingga dapat berinteraksi dengan
user untuk melakukan sesuatu, seperti dial telepon, mengambil foto, mengirim
email, atau melihat peta. Setiap Activity mendapatkan tampilan/layout sebagai
antarmuka dengan user.
Sebuah aplikasi Android biasanya
terdiri dari beberapa Activity yang tidak terikat satu sama lain. Biasanya,
satu Activity dalam aplikasi ditentukan sebagai Main Activity, Activity utama
ini yang digunakan sebagai launcher kepada pengguna ketika aplikasi pertama
kalinya dijalankan. Kemudian dapat memulai Activity lain untuk melakukan
kegiatan yang berbeda-beda.
1.2 Rumusan
Masalah
1. Apa
itu menu intent Android?
2. Apa
itu activity Android?
1.3 Tujuan
dan Manfaat
Tujuan penulisan makalah ini adalah untuk
mengetahui serta mempelajari menu intent dan activity android. Serta untuk
menambah wawasan dan pengetahuan.
Manfaat penulisan makalah ini adalah agar
dapat mengetahui menu intent dan activity android beserta penggunaannya, bukan
sekedar tahu menggunakannya tetapi juga tahu bagaimana menu intent dan activity
android yang ada. Dan dapat memberikan pengetahuan kepada para pembaca terhadap
menu intent dan activity android.
BAB
II
PEMBAHASAN
2.1
Intent
Intent merupakan suatu objek yang terdapat dalam suatu activity
dimana dengan objek tersebut bisa melakukan komunikasi dengan activity yang
lain, baik activity yang sudah terdapat pada fungsi internal android (Browser,
kamera, dll) ataupun memanggil activity yang lain baik dalam satu package
ataupun beda package dalam satu projek. Itu menurut saya loh.. kalo ada
koreksi, silakan dikoreksi saja...Dari Pengeritian yang saya berikan di atas.
Intent itu terbagi dua, yaitu implicit intent dan explicit intent.
·
Implicit intent merupakan
intent yang memanggil fungsi yang sudah ada pada fungsi internal android.
·
Explicit intent merupakan
intent yang memanggil Activity lain.
Salah
satu pemegang kunci di android development adalah intent. Intent adalah
asynchronous message yang mempunyai fungsi untuk mengaktifkan 3 komponen utama
android (activity, service dan broadcastReiver). Cara kerjanya selayaknya
messenger yang meminta aksi dari komponen lainnya baik komponen tersebut milik
dari aplikasi ataupun bukan. Intent dapat didefinisikan secara explicit dan
implicit. Explicit intent yaitu intent yang didefinisikan secara langsung
ketika akan mengaktifkan suatu komponen dengan memanggil class name-nya.
Contohnya:
\\ start component activity DisplayMessageActivity Intent intent = new Intent(this, DisplayMessageActivity.class); startActivity(intent);
|
Sedangkan implicit intent mendeskripsikan
type action untuk ditindaklanjutkan dan membolehkan system untuk menemukan
komponen yang ada didalam device yang dapat melakukan action tersebut. Implicit
intent tidak mendefinisikan class name secara langsung. Contohnya:
1.
// Create the text message with a string
2.
Intent sendIntent = new Intent();
3.
sendIntent.setAction(Intent.ACTION_SEND);
4.
sendIntent.putExtra(Intent.EXTRA_TEXT, textMessage);
5.
sendIntent.setType(HTTP.PLAIN_TEXT_TYPE); //
"text/plain" MIME type
6.
7.
// Verify that the intent will resolve to an
activity
8.
if (sendIntent.resolveActivity(getPackageManager()) != null) {
9.
startActivity(sendIntent);
10.
}
|
Salah
satu kekuatan utama dari implisit intent ini adalah dapat sebagai intent
matching dari action-action yang ada didalam android. Misalnya contoh berikut,
activity ComposeEmailActivity dapat menerima send action (share) yang direquest
oleh aplikasi lain. Karena intent-filter action ada yang match dengan
android.intent.action.SEND, maka android system memasukkan sebagai list
aplikasi yang bisa diekskusi untuk request send(share).
11.
<manifest ... >
12.
...
13.
<application ... >
14.
<activity android:name="com.example.project.ComposeEmailActivity">
15.
<intent-filter>
16.
<action android:name="android.intent.action.SEND" />
17.
<data android:type="*/*" />
18.
<category android:name="android.intent.category.DEFAULT" />
19.
</intent-filter>
20.
</activity>
21.
</application>
</manifest>
|
Berikut
cara kerja implisit intent sebagai asynchronous messenger didalam system
android.

2.1.1 Penggunaan Implicit Intent
Sekarang
mari kita coba praktekan implementasi implicit intent pada
aplikasi android kita. Kita coba buat Aplikasi yang didalamnya ada fungsi Call
Dial, Open Browser dan Kamera. Berhubung sudah mau masuk bulan ramdhan nanti
pada fungsi Open Browser. Kita masukkan address url website yang menampilkan
Jadwal Puasa 2011 / Jadwal Imsakiyah Ramadahn 1432H. Buat New Project seperti
dibawah ini:
Sekarang
mari kita buat user interfacenya dengan mengedit file main.xml
1.
<?xml version="1.0" encoding="utf-8"?>
|
3.
android:orientation="vertical" android:layout_width="fill_parent"
|
4.
android:layout_height="fill_parent">
|
5.
<TextView android:layout_width="fill_parent"
|
6.
android:layout_height="wrap_content" android:text="
Belajar Implicit Intent" />
|
7.
<Button android:layout_height="wrap_content"
|
8.
android:layout_width="match_parent" android:text="Pesan
McDonald"
|
9.
android:id="@+id/btnMcDonald"></Button>
|
10. <Button android:layout_height="wrap_content"
|
11. android:layout_width="match_parent" android:text="Pesan
KFC"
|
12. android:id="@+id/btnKFC"></Button>
|
13. <Button android:text="Belajar
Android" android:layout_height="wrap_content"
|
14. android:layout_width="match_parent" android:id="@+id/btnBelajarAndroid"></Button>
|
15. <Button android:text="Jadwal
Puasa" android:layout_height="wrap_content"
|
16. android:id="@+id/btnJadwalPuasa" android:layout_width="match_parent"></Button>
|
17. <Button android:text="Ambil
Gambar" android:layout_height="wrap_content"
|
18. android:id="@+id/btnKamera" android:layout_width="match_parent"></Button>
|
19. </LinearLayout>
|
Pada
code main.xml diatas Menggunakan LinearLayout yang didalamnya terdapat 1 buah
TextView dan 5 Button.
Edit
file BelajarImplicitIntent.java
|
||||||||||||
|
||||||||||||
|
||||||||||||
|
||||||||||||
|
||||||||||||
|
||||||||||||
|
||||||||||||
|
||||||||||||
|
||||||||||||
|
||||||||||||
|
||||||||||||
|
||||||||||||
|
||||||||||||
|
||||||||||||
|
||||||||||||
|
||||||||||||
|
||||||||||||
|
||||||||||||
|
||||||||||||
|
||||||||||||
|
||||||||||||
|
||||||||||||
|
||||||||||||
|
||||||||||||
|
||||||||||||
|
||||||||||||
|
||||||||||||
|
||||||||||||
|
||||||||||||
|
||||||||||||
|
||||||||||||
|
||||||||||||
|
||||||||||||
|
||||||||||||
|
||||||||||||
|
||||||||||||
|
||||||||||||
|
||||||||||||
|
||||||||||||
|
||||||||||||
|
||||||||||||
|
||||||||||||
|
||||||||||||
|
||||||||||||
|
||||||||||||
|
||||||||||||
|
||||||||||||
|
||||||||||||
|
||||||||||||
|
||||||||||||
|
Disini
pada masing-masing button dipasang setOnClickListener.
Agar
pada saat kita mengklik atau sentuh button tersebut akan mengekseskusi method
onClick didalamnya.
|
|||||
|
|||||
|
Contohnya btnJadwalPuasa apabile
diklik akan mengeksekusi perintah yang ada pada method onClick dalam
hal ini akan memanggil method CallIntent
|
|||||
|
|||||
|
Method CallIntent berfungsi
untuk menjalankan Suatu Activity berdasarkan button yang diklik.
Jika
button yang diklik adalah btnJadwalPuasa maka akan memanggil intent
yang akan memanggil browser dan menampilkan websitehttp://www.pkpu.or.id/imsyak/ yang
isinya menampilkan Jadwal Puasa 2011 / Jadwal Imsakiyah Ramadhan
1432H
4. Sekarang kita edit file AndroidManifest.xml
4. Sekarang kita edit file AndroidManifest.xml
|
|||||||||||
|
|||||||||||
|
|||||||||||
|
|||||||||||
|
|||||||||||
|
|||||||||||
|
|||||||||||
|
|||||||||||
|
|||||||||||
|
|||||||||||
|
|||||||||||
|
5.Sekarang
mari kita jalankan projectnya
Sentuh /
Klik button Jadwal Puasa, maka akan menampilkan Jadwal Puasa 2011
(jadwal imsakiyah ramadahan 2011) dari website http://www.pkpu.or.id/imsyak/
(jadwal imsakiyah ramadahan 2011) dari website http://www.pkpu.or.id/imsyak/
Diwebsite
ini kita bisa pilih jadwal berdarkan kota
2.1.2
Penggunaan Explicit Intent
Oke kita mulai saja buka eclipse, lalu ikuti langkah-langkah
berikut ini.
1. Buat Project Baru, isikan
fieldnya seperti dibawah ini
Pada saat project pertama kali
dibuat ada 3 file penting yang langsung dibuat, yaitu
·
main.xml
·
string.xml
·
BelajarExplicitIntentActivity.java
2. Kita siapkan layout untuk
Activity pertama kita, edit main.xml lalu isikan dengan kode berikut
<?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:layout_width="fill_parent"
|
android:layout_height="wrap_content"
|
android:text="Main Activity"
|
/>
|
<TextView
android:text="Activity 1" android:id="@+id/textView1"
android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView>
|
<EditText
android:layout_height="wrap_content"
android:id="@+id/editText1"
android:layout_width="match_parent">
|
<requestFocus></requestFocus>
|
</EditText>
|
<TextView
android:text="Dari Activity 2" android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"></TextView>
|
<EditText
android:layout_height="wrap_content"
android:id="@+id/editTextdr2"
android:layout_width="match_parent"></EditText>
|
<Button
android:text="Call Second Activity"
android:id="@+id/btnOpen"
android:layout_width="fill_parent"
android:layout_height="wrap_content"></Button>
|
</LinearLayout>
|
3. Siapkan juga layout activity ke
dua, buat file xml baru lalu simpan dengan nama main2.xml lalui isikan dengan
kode berikut
<?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:layout_width="fill_parent"
|
android:layout_height="wrap_content"
|
android:text="Second Activity"
|
/>
|
<TextView
android:text="Dari Activity 1"
android:id="@+id/textView1" android:layout_width="wrap_content"
android:layout_height="wrap_content"></TextView>
|
<EditText
android:layout_height="wrap_content"
android:id="@+id/editTextdr1"
android:layout_width="match_parent">
|
</EditText>
|
<TextView
android:text="Activity 2" android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"></TextView>
|
<EditText
android:layout_height="wrap_content"
android:id="@+id/editText2"
android:layout_width="match_parent"></EditText>
|
<Button
android:text="Close Second Activity"
android:id="@+id/btnClose"
android:layout_width="fill_parent"
android:layout_height="wrap_content"></Button>
|
</LinearLayout>
|
4. Sekarang masuk ke file javanya,
edit File BelajarExplicitIntentActivity.java lalu isikan kode berikut
package
com.agus.explicit.intent;
|
|
import
android.app.Activity;
|
import
android.content.Intent;
|
import
android.os.Bundle;
|
import
android.view.View;
|
import
android.widget.Button;
|
|
public
class BelajarExplicitIntentActivity extends Activity {
|
/** Called when the activity is first
created. */
|
@Override
|
public void onCreate(Bundle
savedInstanceState) {
|
super.onCreate(savedInstanceState);
|
setContentView(R.layout.main);
|
|
Button btnOpen = (Button)
findViewById(R.id.btnOpen);
|
//set OnClickListener event to
btnOpen
|
btnOpen.setOnClickListener(new
View.OnClickListener() {
|
public void onClick(View v) {
|
callIntent();
|
}
|
});
|
}
|
|
//method for call SecondActivity
|
public void callIntent(){
|
Intent
i = new Intent(this, SecondActivity.class);
|
startActivity(i);
|
}
|
}
|
Perhatikan kode
Intent i =
new Intent(this, SecondActivity.class);
startActivity(i);
Kode inilah yang digunakan untuk
memanggil class SecondActivity
5. Kita buat file java baru untuk
Activity Kedua, simpan dengan nama SecondActivity.java lalu isikan dengan kode
berikut
package
com.agus.explicit.intent;
|
|
import android.app.Activity;
|
import
android.os.Bundle;
|
import
android.view.View;
|
import
android.widget.Button;
|
|
public
class SecondActivity extends Activity {
|
public void onCreate(Bundle
savedInstanceState) {
|
super.onCreate(savedInstanceState);
|
setContentView(R.layout.main2);
|
|
Button btnOpen = (Button)
findViewById(R.id.btnClose);
|
btnOpen.setOnClickListener(new
View.OnClickListener() {
|
|
@Override
|
public void
onClick(View arg0) {
|
// TODO
Auto-generated method stub
|
finish();
//close activity
|
}
|
});
|
}
|
}
|
6. Jangan lupa daftarkan Activity
(SecodActivity.java) yang kita buat tadi pada Androidmanifest.xml.
Tambahkan kode
Tambahkan kode
<activity
android:label="SeconActivity"
android:name=".SecondActivity"></activity>
</application>
|
Sehingga isi
AndroidManifes.xmlmenjadi seperti ini
<?xml
version="1.0" encoding="utf-8"?>
|
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
|
package="com.agus.explicit.intent"
|
android:versionCode="1"
|
android:versionName="1.0">
|
<uses-sdk
android:minSdkVersion="8" />
|
|
<application
android:icon="@drawable/icon"
android:label="@string/app_name">
|
<activity
android:name=".BelajarExplicitIntentActivity"
|
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:label="SeconActivity"
android:name=".SecondActivity"></activity>
|
</application>
|
</manifest>
|
7. Sekarang mari kita
jalankan programnya
Klik button Call Second Activity
Klik tombol Close Second Activity
akan Menutup SecondActivity dan menampilkan Activity sebelumnya
8. Kita juga bisa mengirimkan data
ke Activity yang dipanggil. Untuk mengirimkan data gunakan peritnha putExtra,
untuk itu pada class BelajarExplicitIntentActivity.java, pada method callIntent
rubah menjadi seperti ini.
public
void callIntent(){
Intent
i = new Intent(this, SecondActivity.class);
EditText
text1 = (EditText) findViewById(R.id.editTextdr1);
String dataactivity_1 =
text1.getText().toString();
//untuk
mengirim data gunakan putExtra
i.putExtra("value1",
dataactivity_1 );
startActivity(i);
}
|
9. Untuk membaca data yang dikirim
dari Activity yang memanggil, pada class SecondActivity.java dalam method
onCreate sesudah “setContentView(R.layout.main);” tambah kode ini
Bundle
extras = getIntent().getExtras();
if (extras == null) {
return;
}
String value1 =
extras.getString("value1");
if (value1 != null ) {
EditText text1 =
(EditText) findViewById(R.id.editText1);
text1.setText(value1);
}
|
10. sekarang mari kita run kembali
Isi Inputan Activity 1 dengan “mau
makan apa ?”, lalu klik button Call Second Activity
Secara ototmatis Inputan Dari
Activity 1 akan terisi sesuai dengan isian yang kita inputkan pada
activity Pemanggil. Isi inputan Activity 2 dengan “nasi dengan ayam”,
lalu klik tombol Close Second Activity
Jawaban dari Second Activity tidak
terbaca oleh Activity Pemanggilnya.
11. Untuk membaca data yang dikirim
dari SecondActivity pada saat Activity tersebut ditutup. Maka kita perlu menambahkan
kode pada class BelajarExplicitIntentActivity.java berikut kode lengkapnya.
package
com.agus.explicit.intent;
|
|
import
android.app.Activity;
|
import
android.content.Intent;
|
import
android.os.Bundle;
|
import
android.view.View;
|
import android.widget.Button;
|
import
android.widget.EditText;
|
|
public
class BelajarExplicitIntentActivity extends Activity {
|
private static final int REQUEST_CODE
= 1;
|
/** Called when the activity is first
created. */
|
@Override
|
public void onCreate(Bundle
savedInstanceState) {
|
super.onCreate(savedInstanceState);
|
setContentView(R.layout.main);
|
|
Button btnOpen = (Button)
findViewById(R.id.btnOpen);
|
//set OnClickListener event to
btnOpen
|
btnOpen.setOnClickListener(new
View.OnClickListener() {
|
public void onClick(View v) {
|
callIntent();
|
}
|
});
|
}
|
|
//method for call SecondActivity
|
public void callIntent(){
|
Intent
i = new Intent(this, SecondActivity.class);
|
EditText
text1 = (EditText) findViewById(R.id.editText1);
|
String dataactivity_1 =
text1.getText().toString();
|
//untuk
mengirim data gunakan putExtra
|
i.putExtra("value1",
dataactivity_1 );
|
startActivityForResult(i,
REQUEST_CODE);
|
}
|
|
@Override
|
protected void onActivityResult(int
requestCode, int resultCode, Intent data) {
|
if (resultCode == RESULT_OK
&& requestCode == REQUEST_CODE) {
|
if
(data.hasExtra("return_value1")) {
|
EditText
text2 = (EditText) findViewById(R.id.editTextdr2);
|
text2.setText(data.getExtras().getString("return_value1"));
|
}
|
}
|
}
|
}
|
Perhatikan code startActivityForResult(i, REQUEST_CODE); Agar Activity pemanggil dapat menangkap data yang dikirimkan
oleh activity yang dipanggil, maka kita harus menggunakan perintahstartActivityForResult dan
kita harus mengoveride method onActivityResult
12. Pada Class SecondActivity.java
rubah isinya menjadi seperti ini.
package
com.agus.explicit.intent;
|
|
import
android.app.Activity;
|
import
android.content.Intent;
|
import
android.os.Bundle;
|
import
android.view.View;
|
import
android.widget.Button;
|
import
android.widget.EditText;
|
|
public
class SecondActivity extends Activity {
|
public void onCreate(Bundle
savedInstanceState) {
|
super.onCreate(savedInstanceState);
|
setContentView(R.layout.main2);
|
Bundle extras =
getIntent().getExtras();
|
if (extras == null) {
|
return;
|
}
|
String value1 =
extras.getString("value1");
|
|
if (value1 != null ) {
|
EditText text1 =
(EditText) findViewById(R.id.editTextdr1);
|
text1.setText(value1);
|
}
|
|
Button btnOpen = (Button)
findViewById(R.id.btnClose);
|
btnOpen.setOnClickListener(new
View.OnClickListener() {
|
|
@Override
|
public void
onClick(View arg0) {
|
// TODO
Auto-generated method stub
|
finish();
//close activity
|
}
|
});
|
}
|
|
@Override
|
public void finish() {
|
Intent data = new Intent();
|
EditText text2 = (EditText)
findViewById(R.id.editText2);
|
String dataactivity_2 =
text2.getText().toString();
|
data.putExtra("return_value1",
dataactivity_2);
|
setResult(RESULT_OK, data);
|
super.finish();
|
}
|
}
|
Agar dapat mengirim data ke
activity pemanggil pada saat activity ini diclose maka kita perlu mengoverride
method finish
13. Sekarang mari kita jalankan
programnya, lakukan langkah-langkah seperti pada point 10.
Sekarang pada saat kta klik tombol Close Second Activity maka tampilannya adalah
Sekarang pada saat kta klik tombol Close Second Activity maka tampilannya adalah
14. Kita telah berhasil membaca
data yang dikirimkan oleh Second Activity, agar lebih memahami cobalah
praktekan konsep Explicit Intent ini pada aplikasi yang kita buat.
2.2
Activity Android
Activity merupakan public class dalam aplikasi Android. Setiap
activity merupakan sesuatu yang unik atau single, yang ditujukan untuk
menghandle macam-macam hal yang bisa dilakukan oleh user. Umumnya, activity
berhubungan dengan user di mana activity menciptakan windows atau UI yang mana
ditampilkan dengan konsep setContentView (View). Ada dua metode yang pasti
dimiliki oleh satu activity yaitu :
1. onCreate
Untuk menginisiasi suatu activity, biasanya dipanggil dengan
perintah setContentView(int) untuk resource yang kita definisikan di layout UI,
dan perintah findViewById(int) untuk memanggil widget yang dibutuhkan UI untuk
berinteraksi dengan aplikasi.
2. onPause
Untuk menyatakan ketika user meninggalkan suatu activity.
Untuk penggunaan dengan Context.startActivity(), semua kelas
activity harus sesuai dengan <activity> yang di deklarasikan dalam suatu
paket di AndroidManifest.xml. Activity adalah bagian penting dari keseluruhan
siklus aplikasi, bagaimana activity dijalankan merupakan bagian penting dari
model aplikasi.
Activity aplikasi android dikelola dengan sistem yang dikenal
dengan activity stack. Ketika suatu activity start, activity diletakkan pada
stack yang paling atas dan activity-activity yang sudah jalan berada dibawahnya
dan akan terus berada pada posisi stack sampai muncul activity yang baru.
Pada dasarnya activity pada android memiliki empat keadaan, yaitu:
1.
active atau running, jika
activity berada pada posisi atas stack
2.
pause, jika activity tidak
dipakai atau dibutuhkan pada suatu saat tertentu, tetapi activity itu masih ada
atau visible, ketika activity baru yang ditangani oleh sistem activity yang
lama disebut pause dan masih berada di memori, bisa jadi suatu activity yang
sudah keadaan pause tidak ada di memori yang kemungkinan disebabkan oleh
keterbatasan memori
3.
stopped, jika activity sudah
tidak dipakai dan digantikan oleh activity lain, activity yang sudah stopped
tidak akan pernah dipanggil lagi, dan secara permanen memori pun tidak
menyimpan info mengenai activity ini
4.
restart, jika activity pause
atau stopped, sistem dapat menge-drop activity ini dari sistem memori, dan
ketika user membutuhkan activity tersebut, activity akan kembali pada keadaan
awal, artinya activity tersebut mengalami proses restart.
Berikut ini adalah gambaran mengenai activity
lifecycle atau siklus dari activity di dalam android sistem :
Berdasarkan gambar lifecycle activity di atas, secara umum dapat
kita jelaskan bahwa looping (perulangan) yang mungkin dialami oleh activity ada
tiga perulangan, yaitu:
1.
entirelifetime, yaitu
activity yang terjadi mulai dari onCreate() sampai dengan onDestroy(). Biasanya
activity ini akan dibuat setup global ketika mendefinisikannya
2.
visible lifetime, yaitu
activity yang terjadi mulai dari onCreate() sampai dengan onStop()
3.
foreground lifetime yaitu
activity yang terjadi di antara onResume() dan onPause()
Sehingga
sintaks superclass dari gambar di atas adalah sebagai berikut:
Public
class Activity extends ApplicationContext {
protected
void onCreate (Bundle savedInstanceState);
protected
void onStart();
protected
void onRestart();
protected
void onResume();
protected
void onPause();
protected
void onStop();
protected
void onDestroy();
}
|
Berikut
ini merupakan tabel Lifecycle Activity Android
Maksud dari killable disini adalah apakah memungkinkan bagi sistem
untuk mematikan proses host activity atau tidak. Sehingga method yang ditandai
dengan huruf N itu berarti melindungi host activity (tidak dimatikan).
Activity yang secara teknis Killable adalah N bisa saja dimatikan
secara otomatis oleh sistem apabila terjadi low memori atau tidak cukupnya
resource untuk menjaga activity itu tetap hidup. Kejadian tidak cukupnya
resource bisa jadi terjadi karena banyak proses yang sedang dieksekusi dan
memerlukan kapasitas memori yang besar, sehingga terjadi low memori yang
menyebabkan beberapa activity otomatis hilang dari memori.
2.2.1 Membuat Activity
Activity merupakan sebuah class yang menghandle
sebuah halaman user interface pada aplikasi Android. Untuk membuat sebuah
Activity, kita lakukan dengan membuat sebuah class yang meng-extends class
Activity. Bila kita membuat project aplikasi Android baru pada Android
Development Tools, maka ada sebuah class yang bernama MainActivity.java yang
tergenerate secara otomatis. Class ini meng-extends class Activity
(MainActivity extends Activity) sehingga class ini merupakan sebuah Activity.
Activity menampilkan halaman user interface dengan memanggil fungsi onCreate().
Fungsi ini dipanggil ketika class dibuat. Di dalam fungsi tersebut, kita dapat
menentukan xml apa yang kita jadikan sebagai halaman user interface dengan
memanggil fungsi setContentView()dengan parameter berupa xml halaman user
interface, misalnya setContentView(R.layout.activity_main). Code dari class
MainActivity adalah sebagai berikut.
public
class MainActivity extends Activity {
@Override
protected void onCreate(Bundle
savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
|
Activity ini menampilkan halaman user interface
dari activity_main.xml yang menampilkan tulisan “Hello world!”. Jika kita
menjalankannya maka akan tampil halaman seperti ini.
2.2.2 Menjalankan
Activity Lain
Sering kali sebuah aplikasi Android memiliki
lebih dari satu halaman user interface. Transisi antar halaman dapat dilakukan
dengan pemanggilan Activity lain dari sebuah Activity. Misalnya Activity
halaman utama memanggil Activity halaman profile sehingga terjadi transisi dari
halaman utama menuju halaman profile. Pemanggilan Activity lain dapat dilakukan
dengan memanggil fungsi startActivity() dengan mempassing parameter Intent.
Intent adalah object yang mendefinisikan Activity apa yang akan kita jalankan.
Kita akan membuat dua halaman UI yaitu Halaman
Utama dan Halaman Profile. Halaman Utama akan dihandle olehActivityUtama.java
dan Halaman Profile akan dihandle oleh ActivityProfile.java. ActivityUtama.java
akan memanggil ActivityProfile.java. Untuk membuatnya, terlebih dahulu kita
buat xml layout dari kedua halaman tersebut.
Buat
file halaman_utama.xml pada folder layout dan copy-paste code berikut pada file
tersebut.
<?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:orientation="vertical"
>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:layout_margin="32dp"
android:text="HALAMAN
UTAMA" />
<Button
android:id="@+id/button_profile"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="PROFILE"
/>
</LinearLayout>
|
Buat
file halaman_profile.xml pada folder layout dan copy-paste code berikut pada
file tersebut.
<?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:orientation="vertical"
>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:layout_margin="32dp"
android:text="HALAMAN
PROFILE" />
</LinearLayout>
|
Kemudian
kita buat dua class Activity yaitu class ActivityUtama.java dan
ActivityProfile.java.
Buat
class ActivityUtama.java dan copy-paste code berikut ini pada class tersebut.
import
android.app.Activity;
import
android.content.Intent;
import
android.os.Bundle;
import
android.view.View;
import
android.widget.Button;
public
class ActivityUtama extends Activity {
@Override
protected void onCreate(Bundle
savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.halaman_utama);
Button bProfile =
(Button) findViewById(R.id.button_profile);
bProfile.setOnClickListener(new
View.OnClickListener() {
@Override
public void onClick(View arg0) {
Intent intent = new
Intent(ActivityUtama.this, ActivityProfile.class);
startActivity(intent);
}
});
}
}
|
Buat
class ActivityProfile.java dan copy-paste code berikut ini pada class tersebut.
import
android.app.Activity;
import
android.os.Bundle;
public
class ActivityProfile extends Activity {
@Override
protected void onCreate(Bundle
savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.halaman_profile);
}
}
|
Kita
harus mendefinisikan class Activity yang baru kita buat pada file Manifest dari
aplikasi. Buka fileAndroidManifest.xml pada project, hapus code mulai dari <application sampai dengan
</application> dan ganti
dengan code berikut ini.
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".ActivityUtama"
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=".ActivityProfile" />
</application>
|
Jalankan
project, maka akan tampil halaman berikut ini.
Halaman
Utama dihandle oleh ActivityUtama.java. Pada halaman tersebut, terdapat tombol
Profile. Jika tombol tersebut ditekan, maka ActivityUtama.java akan menjalankan
ActivityProfile.java yang menghandle Halaman Profile.
Jika pada Halaman Profile ditekan tombol Back,
maka akan kembali pada Halaman Utama.
BAB
IV
PENUTUP
1. Kesimpulan
Pada
suatu activity user dapat berinteraksi dengan menu-menu yang ada di dalamnya. Pada
pemrograman android untuk berpindah antar halaman/activity dapat menggunakan
bantuan intent. Intent digunakan untuk membuka activity lain di dalam satu
aplikasi.
Intent merupakan suatu objek yang terdapat dalam suatu
activity dimana objek tersebut dalam berkomunikasi dengan activity lain, baik
pada fungsi internal android maupun memanggil activity dalam satu package atau
beda package yang masih dalam satu project maupun beda project.
DAFTAR
PUSTAKA
nice info gan, terima kasih sudh mau saling berbagi, oh ya perkenalkan saya Yuli suseno dari kampus ISB Atma Luhur. terima kasih
BalasHapus