Belajar Android Membuat List Menu Bertingkat

Jumpa lagi dengan agus haryanto dalam seri tutorial android. Pada awal-awal seri tutorial android kita pernah membuat menu List tetapi tidak bertingkat. Seiring dengan berjalannya waktu, banyak juga yang menanyakan bagaimana caranya membuat List yang apabila salah satu menunya diklik atau disentuh maka akan muncul listlainnya. Nah tutorial kali ini akan membahas tentang List Bertingkat

Ingat tutorial kita Membuat Aplikasi bangun datar. Nah bagaimana caranya kalau pada aplikasi itu kita juga ingin membuat menu untuk bangun ruang dan matematika dasar. Nah sekarang kita buat menu untuk aplikasi matematika yang lebih lengkap, dengan struktur menu.

Sekarang mari kita buat projectnya

  1. Buka senjata kita untuk develop android yaitu eclipse, kemudian buat new project  dengan nama ListBertingkat

Pada saat project pertama kali dibuat ada 3 file penting yang langsung dibuat, yaitu

  • main.xml
  • string.xml
  • ListBertingkat.java

2. Untuk List Menu ini kita tidak perlu melakukan perubahan pada file main.xml.
3. Sekarang mari kita buat otak dari aplikasi ini, buka ListBertingkat.java, lalu ketikkan seperti kode dibawah ini

package com.agus.list.tingkat;

/**
 * Class ListBertingkat
 * @version 1.0 Apr 22, 2011
 * @author Agus Haryanto (agus.superwriter@gmail.com)
 * @website http://agusharyanto.net
 */
import android.app.ListActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;

public class ListBertingkat extends ListActivity {

	// Create an array of Strings, that will be put to our ListActivity
	String[] menuutama = new String[] { "Perhitungan", "Bangun Datar",
			"Bangun Ruang", "Keluar Aplikasi" };
	String[] bangundatar = new String[] { "Persegipanjang", "Bujursangkar",
			"Segitiga", "Lingkaran", "Menu Utama" };
	String[] bangunruang = new String[] { "Kubus", "Balok", "Tabung", "Limas",
			"Menu Utama" };
	String[] perhitungan = new String[] { "Penambahan", "Pengurangan",
			"Perkalian", "Pembagian", "Menu Utama" };

	/** Called when the activity is first created. */
	@Override
	public void onCreate(Bundle icicle) {
		super.onCreate(icicle);

		// Create an ArrayAdapter, that will actually make the Strings above
		// appear in the ListView
		// Menset nilai array ke dalam list adapater sehingga data pada array
		// akan dimunculkan dalam list
		this.setListAdapter(new ArrayAdapter<String>(this,
				android.R.layout.simple_list_item_1, menuutama));
	}

	@Override
	/**method ini akan mengoveride method onListItemClick yang ada pada class List Activity
	 * method ini akan dipanggil apabilai ada salah satu item dari list menu yang dipilih
	 */
	protected void onListItemClick(ListView l, View v, int position, long id) {
		super.onListItemClick(l, v, position, id);
		// Get the item that was clicked
		// Menangkap nilai text yang dklik
		Object o = this.getListAdapter().getItem(position);
		String pilihan = o.toString();
		// cek nilai pilihan, disini akan ditentukan akan masuk ke sub list atau
		// membuka form
		// atau keluar aplikasi
		if (pilihan.equals("Perhitungan")) {
			this.setListAdapter(new ArrayAdapter<String>(this,
					android.R.layout.simple_list_item_1, perhitungan));
		} else if (pilihan.equals("Bangun Datar")) {
			this.setListAdapter(new ArrayAdapter<String>(this,
					android.R.layout.simple_list_item_1, bangundatar));
		} else if (pilihan.equals("Bangun Ruang")) {
			this.setListAdapter(new ArrayAdapter<String>(this,
					android.R.layout.simple_list_item_1, bangunruang));
		} else if (pilihan.equals("Menu Utama")) {
			this.setListAdapter(new ArrayAdapter<String>(this,
					android.R.layout.simple_list_item_1, menuutama));
		} else if (pilihan.equals("Keluar Aplikasi")) {
			this.finish();
		} else {
			tampilkanPilihan(pilihan);
		}
	}

	private void tampilkanPilihan(String pilihan) {
		Toast.makeText(this, "Membuka Form " + pilihan, Toast.LENGTH_LONG)
				.show();
	}
}

Dalam pembuatan menu tentunya kita harus menentukan daftar item dari suatu list menu. Nah dalam hal ini kita siapkan dalam bentuk arrary

	String[] menuutama = new String[] { "Perhitungan", "Bangun Datar",
			"Bangun Ruang", "Keluar Aplikasi" };
	String[] bangundatar = new String[] { "Persegipanjang", "Bujursangkar",
			"Segitiga", "Lingkaran", "Menu Utama" };
	String[] bangunruang = new String[] { "Kubus", "Balok", "Tabung", "Limas",
			"Menu Utama" };
	String[] perhitungan = new String[] { "Penambahan", "Pengurangan",
			"Perkalian", "Pembagian", "Menu Utama" };

Nah array-array inilah yang akan kitas set kedalam  suatu adapter list.

4. Edit file AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.agus.list.tingkat"
      android:versionCode="1"
      android:versionName="1.0">
    <application android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:name=".ListBertingkat"
                  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>
    <uses-sdk android:minSdkVersion="7" />

</manifest>

5.  Semua telah selesai dibuat sekarang saatnya untuk menjalankan programnya.

Tampilan yang pertamakali muncul adalah menu yang terdapat pada array menuutama


Klik atau sentuh menu Perhitungan, akan tampil menu perhitungan (list menu berasal dari array perhitungan)

Pada menu ini ada pilihan Menu Utama yang fungsinya untuk kembali ke Menu Utama. Repot jugakan kalau sudah masuk ke Sub Menu tapi tidak bisa kembali ke Menu Utama.

Silahkan Klik dan Sentuh Menu-menu lainnya rasakan dan pahami perbedannya.

Gimana setelah membaca tutorial ini, mudahkan membuat Menu List Bertingkat.

Semoga Bermanfaat

Agus Haryanto

43 comments to Belajar Android Membuat List Menu Bertingkat

  • Al

    Mas mau tanya kalau disetip di file .xml ada tulisan kayak dibawah ini maksudnya apaanya
    “http://schemas.android.com/apk/res/android”

  • Sama Kaya Aplikasi yang saya buat, pake Menu list bertingkat jgua hahahah

    nice Artikel bung agus.. lanjutkan

    Banyak Terinspirasi dari website bung agus…

    Good… Good… Good..

  • ari

    web sitenya oke mas. Mas pas saya nambah file xml untuk menu nya kok tidak digenerate di R.Java ya? apa harus setelah menuliskan file java nya dulu?

  • ari

    eh sudah terjawab mas. ternyata nama file xml di res/layout nya ada yg huruf besar. ternyata itu berpengaruh terhadap generate R.java 😀

  • dika

    mas klau mau tambah tingkatan list lg perlu tambahan kode yg mana……..mohon bimbinganya mas he…..

  • shabat

    mas agus bisa bkinin tutorial memasukan vidio di projeck android gk mas??
    makasi sebelumnya ^_^

  • irfan

    Mas kl Listview bisa di isi sama image + edittext ga?
    kl bisa caraya gmn?
    mohon pencerahannya mas.. 🙂

  • nguditri

    mas mau agus mau nanya klo udh buat menu string klo dalam menu itu di masukkan gambar sampingnya misal persegi panjang lalu gambar persegi panjang bs ga mas ? mos d bantu

  • reza

    saya sudah mengikuti tutorial yg membuat menu list . tapi di androidmanifest.xml nya error di bagian <manifest xmlns:android="http://schemas.android.com/apk/res/android&quot; katanya Multiple annotations found at this line:
    – Content is not allowed in prolog.
    – ERROR Error parsing XML:
    syntax erro

  • rian

    mas mau nanyak kalo mau hubungin menu list ke maps caranya gman ya..

  • zodiac

    ow…klo td pake array…kalo list nya ngeload dari database gmn y caranya??? mohon pencerahannya …

  • yuli

    mas agus,,, mau nanya. kalo misal ada menu list, trus mau buat searching pada list tersebut. gimana ya caranya???? Mohon bantuannya 🙂

  • dimz

    mas, kalo mau nambahin misalnya rumus tuh scriptnya di taro di sebelah mana yah??misal kita pilih persegi panjang, nah langsung rumus persegi panjang muncul….

  • un0r0ck3r

    Om agus thanks banget atas tutorialnya !
    saya jadi bisa bikin aplikasi face recognize,,,,
    buat materi Tugas Akhir saya thank you bgt yah….
    hahahahahahaha

    keep move for a better learning most of view like a wise man….!

  • Kalau salah satu text-nya mau di kasih warna gimana ya? atau backgroundnya aja yang dirubah warnanya.. misal cuma Menu Utama teks/ backgroundnya ganti merah, gmn tuh? mohon pencerahannya.

  • Mas kalo misalnya back ke menu utama tanpa harus menekan tombol Menu Utama (tombol back HP) gmn?

  • darklight

    aq dapet error force close ketika… anggap saja di tutorial om agus perhitungan > perkalian {/* i will do something in here */} __
    gimana sih cara menset click listener pada adapterlist yang level 2, kok dijadiin 1 kagak bisa >.<

  • natanael

    saya juga satu pikiran sama si dimz…..nambahin supaya muncul activity perhitungan luas, wktu kita pilih menu persegi panjang….gimana ya mas??

  • Agus Haryanto

    @natanel, Coba deh cek tutorial Aplikasi Bangun Datar, gabungkan dengan tutorial ini, pahami konsep explicit intent

  • didis

    mas kalau menu bertingkatnya berasal dari data yang kita ambil dari penyimpanan SQLite bagaimana syntaknya? saya sedang dalam tugas kampus dan kira-kira konsepnya itu list setelah list berasal dari data yang diambil (query) dari SQLite. tapi saya masih bingung mas :s mohon pencerahan..

  • yan

    Maaf Bapak, saya mau tanya
    agar listnya berwarna putih dan terlihat bersih seperti aplikasi yg bapak share di link http://agusharyanto.net/wordpress/?p=517 caranya bagaimana ya?

    saya lihat listnya ini terlalu besar fontnya. Terima kasih atas sharingnya 🙂

  • Yuniardi

    Terus berkarya mas. terima kasih atas ilmu nya..

  • fauziah

    mas aku udh coba gabungin tutorial ini sma membuat bangun datar,
    seperti yg mas blg sma natael
    tp mentok mas 🙂
    mohon bantuannya..

  • Rev

    Kug saya eror iya di bagian manifestx..di kalimat ini

    knp pak iya

  • fahmi

    mas qw cba yang list ko slah..
    mohon bantuanya mas…

  • fahmi

    cara masukan foto dan musik gmn mas bantunya uga ya….

  • wahab

    mau nanya mas kan list menunya udah jadi, itu klo mau aktifin list menu perhitungan form yang penambahan, itu caranya gimana mas & masukin codingnya kemana?
    mohon bantuan mas Agus

  • eno

    kalo saat pembuatan menu bertingkat bukan pake Textview tapi pake button apakah listing programnya juga hampir sama?
    gimana caranya mengkoneksikan aplikasi yang kita buat connect ke internet, karena sy mau buat aplikasi yang bisa melihat tampilan cctv lewat ip cam dan bisa mengendalikan kunci pintu?
    gimana caranya menggabungkan antara eclipse dengan arduinonya?
    mohon penjelasan.
    Terimakasih

  • kautsar

    mas agus kalau mau di tambah kan
    “Posted on : ” kemudia tanggal yang di ambil dari RSS bagaimana ya mas … ???

  • hany

    mas agus tolong kasih tau dong cara nya membuat kamus dengan suara terjemahannya, sebelumnya terima kasih y mas agus

  • alam

    mas kalau mau di tambahkan dengan koneksi ke form..misal kalau “penambahan” di klik maka akan membuka form baru untuk melakukan proses penjumlahan. . .itu gimana ya?? mohon bimbingannya

  • @alam : Coba anda baca dulu http://agusharyanto.net/wordpress/?p=469 mas, mungkin itu yang anda cari…
    hehehe…
    semoga membantu…

    Selamat mencoba & terus semangat!

  • alam

    hehehe ok ok mas bro… thanks…
    oh yah nih ada masalah baru,, gimana kalau di sub list penjumlahan mau ditambahkan sublist lagi di dalamnya….codenya gimana mas???

  • mifta

    mas agus , ko list bertingkat ga bisa dikasi gambar baik imageview atau background ??
    mohon bantuannya dan solusinya mass

  • tengkyuuuuuuuuuuuuuuuuuuu artikelnya 😀
    mas agus memang gaullll
    #skripsi

  • dwiky

    mas, kalo listviewnya dikasi search bisa gak ?
    kan ribet kalo listnya banyak trus harus cari satu per satu..
    Mohon bantuannya mas..

  • Agus Haryanto

    @dwiky, Bisa pakai autocompletetextview, tapi kalau memang tetap pakai list, tinggal dipasang watcher saja diedittextnya setiap perubahan kata dia refresh list.

  • dwiky

    ok mas.., saya coba dulu
    makasi sarannya mas…

  • RAG

    mas kalau mau di tambahkan dengan koneksi ke form..misal kalau “penambahan” di klik maka akan membuka form baru untuk melakukan proses penjumlahan gmn mas …?

  • H3ndrik

    bagaiamana caranya membuat context menu untuk search, copy, paste disini seandainya ini merupakan tampilan textview smua…mohon pencerahannya?

  • Desi S

    mas, klo list menu nya bisa di show hide ga ?
    jadi menu2 nya dalam satu halaman, klo menu utamanya nya di klik nanti muncul sub menu dlm bentuk checbox yg bisa di pilih
    Mohon bantuannya mas….

  • y421d23

    mas ini src code buat main.xml nya kok gda y?
    boleh mnta scripnya?

Leave a Reply

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>