Sharing Knowledge

« Android Tabs UI with... | Main | Android Display... »
Monday May 24, 2010

Menu on Android

Seperti aplikasi untuk desktop dan beberapa sistem operasi mobile seperti Palm OS dan WIndows Mobile, Android juga mendukung kegiatan dengan aplikasi menu. 

Ikuti langkah - langkah berikut untuk membuat menu sederhana :
1. Buat layout di file XML yang berisi tampilan text
2. Buat kelas Activity di file java
3. Atur Menu
4. Tambahkan item menu reguler ke menu
5. Merespon menu item

1. Membuat sebuah XML Layout
Langkah pertama adalah membuat file XML Layout sederhana dengan tampilan teks di dalamnya pada folder res / layout main.xml . File xml ini akan di load ke Activity saat startup.

 <?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:id="@+id/textViewId"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="Phone Menus"
    />
</LinearLayout>


2. Membuat sebuah file Activity

 import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.TextView;

public class SimpleMenus extends Activity {
//    Initialize this in onCreateOptions
    Menu myMenu = null;

     @Override
     public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);

    // call layout in main.xml          
         setContentView(R.layout.main);
     }
}

 

3. Setting Menu
Setelah membuat View dan Activity, sekarang kita akan men-setting program untuk menu nya

 @Override
     public boolean onCreateOptionsMenu(Menu menu)
     {
        //call the parent to attach any system level menus
        super.onCreateOptionsMenu(menu);
        this.myMenu = menu;
        //add a few normal menus
        addRegularMenuItems(menu);
        //it must return true to show the menu
        //if it is false menu won't show
        return true;
     }

4. Menambah Menu Item
Untuk menambah item menu, lihat kode dibawah ini :

 //        Adding Regular Menu Items
     private void addRegularMenuItems(Menu menu){
           int base=Menu.FIRST; // value is 1
           MenuItem contact = menu.add(base,base,base,"Contact");
           contact.setIcon(R.drawable.phone_book);

           MenuItem message = menu.add(base,base+1,base+1,"Message");
           message.setIcon(R.drawable.sms2);

           MenuItem clear = menu.add(base,base+2,base+2,"Clear");
           clear.setIcon(R.drawable.eraser);

           MenuItem music = menu.add(base,base+3,base+3,"Music");
           music.setIcon(R.drawable.tone);

           MenuItem internet = menu.add(base,base+4,base+4,"Internet");
           internet.setIcon(R.drawable.moziila);

           MenuItem camera = menu.add(base,base+5,base+5,"Camera");
           camera.setIcon(R.drawable.kamera2);

           MenuItem galery = menu.add(base,base+6,base+6,"Galery");
           galery.setIcon(R.drawable.galery3);

           MenuItem game = menu.add(base,base+7,base+7,"Game");
           game.setIcon(R.drawable.game2);

           MenuItem video = menu.add(base,base+8,base+8,"Video");
           video.setIcon(R.drawable.handycam);       

           MenuItem setting = menu.add(base,base+9,base+9,"Setting");
           setting.setIcon(R.drawable.setting);

        }

Menu kelas mendefinisikan beberapa kostanta, salah satunya adalah Menu.FIRST
 MenuItem contact = menu.add(base,base,base,"Contact");
           contact.setIcon(R.drawable.phone_book);

Kode diatas untuk menambahkan item di menu beserta iconnya. Untuk menambahkan icon untuk menu caranya tinggal copy gambar ke res / drawable. Kemudian buat kode nya seperti diatas.

5. Merespon Menu Item

Setelah men-setup menu, kita lanjutkan ke langkah 5. Ketika sebuah item menu di klik maka Android akan memanggil method onOptionsItemSelected() dari kelas Activity dan kemudian menggunakan method getItemId() pada MenuItem untuk menangkap text yang dimasukkan.

 //        Responding to Menu -> item clicks
        @Override
        public boolean onOptionsItemSelected(MenuItem item) {
           if (item.getItemId() == 1)       {
               appendText("\nContact");
               item.setIcon(R.drawable.phone_book);
           }
           else if (item.getItemId() == 2)       {
                 appendText("\nMessage");
                 item.setIcon(R.drawable.sms2);
              }
              else if (item.getItemId() == 3)       {
                 emptyText();
                 item.setIcon(R.drawable.eraser);
              }
              else if (item.getItemId() == 4)       {

                 appendText("\nTone");
                 item.setIcon(R.drawable.tone);
              }
              else if (item.getItemId() == 5)       {

                 appendText("\nMoziila");
                 item.setIcon(R.drawable.setting);
              }
              else if (item.getItemId() == 6)       {

                 appendText("\nCamera");
                 item.setIcon(R.drawable.kamera2);
              }
              else if (item.getItemId() == 7)       {

                 appendText("\nGalery");
                 item.setIcon(R.drawable.galery3);

              }
              else if (item.getItemId() == 8)       {

                 appendText("\nGame");
                 item.setIcon(R.drawable.game2);

              }
              else if (item.getItemId() == 9)       {

                  appendText("\nVideo");
                  item.setIcon(R.drawable.handycam);

              }
              else if(item.getItemId() == 10)  {
                 appendText("\nSetting");
                 item.setIcon(R.drawable.setting);

              }

              return true;
            }

 

6. Menambah dan Menghapus text

 //Given a string of text append it to the TextView
private void appendText(String text)    {
      TextView tv = (TextView)this.findViewById(R.id.textViewId);
      tv.setText(tv.getText() + text);
}

 //Empty the TextView of its contents
private void emptyText()    {
      TextView tv = (TextView)this.findViewById(R.id.textViewId);
      tv.setText("");
}
}

Setelah di run, hasilnya seperti gambar dibawah ini


_netoya_

Comments:

thanks :p

Posted by latief on May 26, 2011 at 12:37 AM WIT #

Post a Comment:
  • HTML Syntax: Allowed