Liburan kuliah kayak gini nih yang sering saya tunggu-tunggu, waktu jadi lebih longgar untuk belajar. Apalagi kalo pas pulang kampung kayak gini, dijamin tambah betah bertapa di kamar sambil nangkring depan laptop. Yupzzz, dari kemarin saya mencoba untuk belajar lebih jauh lagi tentang pemrograman di platform Android. Platform yang tengah naik daun dan sangat disayangkan untuk dilewati perkembangannya. Bukan hanya perkembangan gadget’nya, tapi juga perkembangan dari sisi pengembangan aplikasinya. Di postingan android terdahulu, saya sudah pernah membahas tentang menampilkan data ke dalam sebuah Listview. Dan jika di-klik, maka akan muncul sebuah alert dengan Toast. Nah….bagaimana jika salah satu list di-klik, kemudian berpindah ke activity/halaman yang lainnya..???. Caranya cukup mudah, kita bisa menggunakan Intent() untuk berpindah ke activity lainnya. Pada postingan kali ini, saya akan membahas cara penggunaan Intent() sebagai teknik dasar untuk terhubung dengan activity lainnya yang telah kita buat. Cekidot gan…
1. Skenario-nya, terdapat 4 activity. Pada activity pertama terdapat 3 buah list yang jika di-klik akan terhubung dengan 3 activity lainnya. Buat android project baru seperti gambar di bawah ini :
2. Buka dan edit file (dari package explorer) src > dlmbg.pckg.tes.intent > TesIntentActivity.java.
public class TesIntentActivity extends ListActivity { String[] perangkat = { "Activity Laptop", "Activity Komputer", "Activity Smartphone"}; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); setListAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, perangkat)); } public void onListItemClick(ListView parent, View v, int urutan, long id) { Object detail = this.getListAdapter().getItem(urutan); String tampil = detail.toString(); Intent i = null; if(tampil=="Activity Laptop") { i = new Intent(TesIntentActivity.this, ActivityLaptop.class); startActivity(i); } else if(tampil=="Activity Komputer") { i = new Intent(TesIntentActivity.this, ActivityKomputer.class); startActivity(i); } else if(tampil=="Activity Smartphone") { i = new Intent(TesIntentActivity.this, ActivitySmartphone.class); startActivity(i); } } }
3. Sekarang buka dan edit file layout, res > layout > main.xml.
<?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" > <ListView android:id="@android:id/list" android:layout_width="fill_parent" android:layout_height="fill_parent" android:drawSelectorOnTop="false" /> </LinearLayout>
4. Karena akan terhubung dengan 3 activity yang menampilkan data yang berbeda, kita buat terlbih dahulu ketiga activity tersebut yaitu, ActivityKomputer, ActivityLaptop, dan ActivitySmartphone.
ActivityKomputer.java
public class ActivityKomputer extends ListActivity { String[] perangkat = { "Activity IBM", "Activity Lenovo", "Activity HP", "Activity Dell", "<< Kembali"}; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.komputer); setListAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, perangkat)); } public void onListItemClick(ListView parent, View v, int urutan, long id) { Object detail = this.getListAdapter().getItem(urutan); String tampil = detail.toString(); Intent i = null; if(tampil=="<< Kembali") { i = new Intent(ActivityKomputer.this, TesIntentActivity.class); startActivity(i); } else { Toast.makeText(this, "Anda Memilih : " + tampil, Toast.LENGTH_SHORT).show(); } } }
ActivityLaptop.java
public class ActivityLaptop extends ListActivity { String[] perangkat = { "Activity Asus", "Activity Acer", "Activity Toshiba", "Activity Sony", "Activity Axioo", "Activity Dell", "<< Kembali"}; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.laptop); setListAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, perangkat)); } public void onListItemClick(ListView parent, View v, int urutan, long id) { Object detail = this.getListAdapter().getItem(urutan); String tampil = detail.toString(); Intent i = null; if(tampil=="<< Kembali") { i = new Intent(ActivityLaptop.this, TesIntentActivity.class); startActivity(i); } else { Toast.makeText(this, "Anda Memilih : " + tampil, Toast.LENGTH_SHORT).show(); } } }
ActivitySmartphone.java
public class ActivitySmartphone extends ListActivity { String[] perangkat = { "Activity Sony Ericsson", "Activity Samsung", "Activity HTC", "Activity Apple", "Activity Blackberry", "<< Kembali"}; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.smartphone); setListAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, perangkat)); } public void onListItemClick(ListView parent, View v, int urutan, long id) { Object detail = this.getListAdapter().getItem(urutan); String tampil = detail.toString(); Intent i = null; if(tampil=="<< Kembali") { i = new Intent(ActivitySmartphone.this, TesIntentActivity.class); startActivity(i); } else { Toast.makeText(this, "Anda Memilih : " + tampil, Toast.LENGTH_SHORT).show(); } } }
5. Kita lanjutkan dengan membuat layout dari masing-masing ketiga activity di atas. Sebenarnya layout yang digunakan sama saja, sama-sama hanya memanggil Listview. Tapi agar terbiasa bekerja rapi dan terstruktur, kita pisah saja layout-nya.
komputer.xml
<?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" > <ListView android:id="@android:id/list" android:layout_width="fill_parent" android:layout_height="fill_parent" android:drawSelectorOnTop="false" /> </LinearLayout>
laptop.xml
<?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" > <ListView android:id="@android:id/list" android:layout_width="fill_parent" android:layout_height="fill_parent" android:drawSelectorOnTop="false" /> </LinearLayout>
smartphone.xml
<?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" > <ListView android:id="@android:id/list" android:layout_width="fill_parent" android:layout_height="fill_parent" android:drawSelectorOnTop="false" /> </LinearLayout>
6. Jangan lupa untuk mendaftarkan ketiga activity ke dalam file AndroidManifest.xml. Kalau gak didaftarkan, saya jamin aplikasinya akan force close :D, minimal activity-nya gak bisa dipanggil.
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="dlmbg.pckg.tes.intent" 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=".TesIntentActivity" android:label="Berpindah Activity Dengan Intent"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name="ActivityLaptop" android:label="Activity Laptop"></activity> <activity android:name="ActivityKomputer" android:label="Activity Komputer"></activity> <activity android:name="ActivitySmartphone" android:label="Activity Smartphone"></activity> </application> </manifest>
7. Jalankan aplikasi melalui emulator (tekan Ctrl + F11). Kira-kira hasilnya seperti di bawah ini :
Perintah untuk berpindah ke activity lain terbilang sederhana, tinggal mendeklarasikan ulang object Intent dan menggunakan format seperti di bawah ini.
Intent i = null; i = new Intent(ActivityPertama.this, ActivityKedua.class); startActivity(i);
OK deh, berhubung listrik di rumah lagi mati dan si laptop baterainya sudah mau habis, saya akhiri postingan tentang android kali ini. Semoga bisa bermanfaat untuk rekan-rekan yang lagi belajar pemrograman di platform android.
Sumber Referensi : http://developer.android.com
Happy Blogging and Keep Coding
Cheerrrsss….!!!!
gan cara ngebuka new android projeck.nya gmana ???
ane bingung,, hehehehe
Aduuuh Gan, ane bingung :'(
itu printskrin kurang banyak Gan..
Ane kok error semua ya?
Wah ketemu gan,, ternyata belom ane import importin..
Thanks Alot ya Agan…
Sangat membantu 🙂
gan kalo mau gabungin Option menu ama listview gmna?
kalo ini kan modelnya kayak list view dua”nya..
tlong infonya gan…makasih
gan, mau tanya. baru bgt nih saya di android. untuk membuat form lain (layout) yang paling cocok pake intent ini ya gan? apa ada cara lain gan? trims
Tks Bro sangat membantu, cuman tanya cara buat date yang bisa di atur gmn bro<
pake datepicker yg udah disediain di SDK nya android aja bos
makasih banyak ya pak.. bermanfaat bgt ilmunya
pas tak coba,,,kog eror di setListAdapter ya? katanya method undefinied…
itu gimana ya biar gag eror…mksh..
gan, kl misal maw preview gambar dr activity pertama ke activity kedua gimana gan ?
jd semisal, di activity pertama ane pny list gambar kecil2, kl gambar tu d klik nnti mncul preview nya di activity kedua dg ukuran yg lbh gede dr gambar yg ada di activity pertama.
mohon bantuannya y ^_^
Kalo activitynya berupa list file pdf yg diambil dr database gimana gan? Bikin tutorialnya dong
Thanks banget….ini membantu sekali buat koding terakhir di final project 😀
gan koq punya ane g bisa pindah ya, stuck di mainactivity ane gan
gan, kalau string nya di ganti button gimana ya?
button nya yg banyak gitu 😀
gan mohon pencerahanya tutorial aplikasi lokasi wisata dong..plasse….
Kalo download ente suruh daftar dulu, tapi daftar jg kagak bisa download percima. Link aktivasi blog ente gak masuk diemail ane. Sekian…