Mehmet Ethem SULAN :: Android :: Android Option Menu and Submenu Sample

Android ile Option Menu oluşturmaya çalıştım.Android aygıtının MENU tuşuna basmasıyla ekrana gelir. Istersen tüm activityler için birer tane oluşturabilirsin. 5 ten fazla olanları listeliyor ve More tıklanınca diğerlerini gösteriyor.

option menu


Bir menuye submenu eklenince o menu seçildiğinde ekrana submenuler geliyor.

submenu


OptionMenuActivity.java

package com.menu.option;

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

public class OptionMenuActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		MenuInflater menuInflater=getMenuInflater();
		menuInflater.inflate(R.menu.menu_ilk, menu);
		return super.onCreateOptionsMenu(menu);
	}

	@Override
	public boolean onOptionsItemSelected(MenuItem item) {
		switch (item.getItemId()) {
		case R.id.item1_bir:
			item1Selected();
			break;
		case R.id.item11_sub_menu:
			item1_sub_menu();
			break;
		case R.id.item2_iki:
			item2Selected();
			break;
		}

		return super.onOptionsItemSelected(item);
	}

	private void item2Selected() {
		Toast.makeText(getApplicationContext(),R.string.iki, Toast.LENGTH_SHORT).show();

	}

	private void item1_sub_menu() {
		Toast.makeText(getApplicationContext(), "Iem birin SUB MENU secildi ", Toast.LENGTH_SHORT).show();
	}

	private void item1Selected() {
		Toast.makeText(getApplicationContext(), "Item BIR secildi", Toast.LENGTH_SHORT).show();
	}

}

menu_ilk.xml

<?xml version="1.0" encoding="utf-8"?>
<menu
  xmlns:android="http://schemas.android.com/apk/res/android">
    <group android:visible="true" android:id="@+id/group1_main" android:enabled="true">
        <item android:showAsAction="ifRoom|withText" android:title="@string/bir" android:id="@+id/item1_bir">
<menu>
    <item android:title="@string/sub1" android:id="@+id/item11_sub_menu" android:showAsAction="ifRoom|withText"></item>
    <item android:title="@string/sub2" android:id="@+id/item12_sub_menu" android:showAsAction="ifRoom|withText"></item>
    <item android:title="@string/sub3" android:id="@+id/item13_sub_menu" android:showAsAction="ifRoom|withText"></item>
</menu>
        </item>
        <item android:id="@+id/item2_iki" android:showAsAction="ifRoom|withText" android:title="@string/iki"></item>
    </group>
    <group android:visible="true" android:enabled="true" android:id="@+id/group2_other">
        <item android:showAsAction="ifRoom|withText" android:title="@string/uc" android:id="@+id/item3_uc"></item>
        <item android:title="@string/dort" android:showAsAction="ifRoom|withText" android:id="@+id/item4_dort"></item>
        <item android:title="@string/bes" android:showAsAction="ifRoom|withText" android:id="@+id/item5_bes"></item>
        <item android:title="@string/yedi" android:showAsAction="ifRoom|withText" android:id="@+id/item7_yedi"></item>
    </group>
    <item android:title="@string/alti" android:showAsAction="ifRoom|withText" android:id="@+id/item6_alti"></item>
</menu>

strings.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="hello">Hello World, OptionMenuActivity!</string>
    <string name="app_name">OptionMenu</string>
    <string name="bir">ethem</string>
    <string name="iki">Gayrettepe, Beşiktaş</string>
    <string name="uc">android</string>
    <string name="dort">Okumak</string>
    <string name="sub1">Sub Menu Bir</string>
    <string name="sub2">Sub Menu Iki</string>
    <string name="sub3">Sum Menu Uc</string>
    <string name="bes">Item Bes</string>
    <string name="alti">Item Alti</string>
    <string name="yedi">Item Yedi</string>
</resources>

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.menu.option"
      android:versionCode="1"
      android:versionName="1.0">

    <application android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:name=".OptionMenuActivity"
                  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>
</manifest>

Uygulamanızı sağ tıklayıp
New–>Other–>Android XML File–>Menu ile create edebilisiniz.

android menu create

Menu için onCreateOptionsMenu(Menu menu){} ve onOptionsItemSelected(MenuItem item){} methodları ovveride etmeniz lazım. Biri oluşturmak için diğeri de event listenerdir.

method

Download OptionMenuSam.tar.gz

Comments

There are 3 comments for this post.

  1. Mehmet Ethem SULAN :: Android :: Android Contact Form TextArea(Multi-Line) and Single-Line Email Validation Sample on Mayıs 17, 2011 7:16 am

    [...] Android Option Menu and Submenu Sample bakmayı unutmayın. option menu [...]

  2. ece on Haziran 1, 2011 9:16 am

    ben yaptığınız çalışmayı uyguladım yalnız 2.3te çalışmıyor, 3.0da çalışıyor. 2.3te çalıştırınca showAction bulunamadı diyor. Ne yapmalıyım

  3. ethemsulan on Haziran 1, 2011 9:29 am

    http://developer.android.com/guide/topics/ui/menus.html linkteki “Creating an Options Menu” bölümünü okuyun.

Write a Comment

Let me know what you think?