Tutorial Android : Cara Menggunakan Intent Untuk Berpindah Ke Activity Lain

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….!!!!

[to_like]Download Aplikasi[/to_like]

15 comments

  1. dhenny Reply

    gan cara ngebuka new android projeck.nya gmana ???
    ane bingung,, hehehehe

  2. nothingwrongwithmylongblackhair Reply

    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 🙂

  3. Pahmie Reply

    gan kalo mau gabungin Option menu ama listview gmna?
    kalo ini kan modelnya kayak list view dua”nya..
    tlong infonya gan…makasih

  4. Mahesa Reply

    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

  5. SYAHRIR Reply

    Tks Bro sangat membantu, cuman tanya cara buat date yang bisa di atur gmn bro<

  6. asli Reply

    pas tak coba,,,kog eror di setListAdapter ya? katanya method undefinied…
    itu gimana ya biar gag eror…mksh..

  7. embeks Reply

    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 ^_^

  8. pelukis Reply

    Kalo activitynya berupa list file pdf yg diambil dr database gimana gan? Bikin tutorialnya dong

  9. bdchan Reply

    Thanks banget….ini membantu sekali buat koding terakhir di final project 😀

  10. Andri-JS Reply

    gan, kalau string nya di ganti button gimana ya?
    button nya yg banyak gitu 😀

  11. Riyadin Reply

    Kalo download ente suruh daftar dulu, tapi daftar jg kagak bisa download percima. Link aktivasi blog ente gak masuk diemail ane. Sekian…