Anasayfa » Android » Android Options Menu Kullanımı

Android Options Menu Kullanımı

Options menu bir android uygulamasında menu butonuna bastığımızda karşımıza çıkan menulerdir. Bir örnek yaparak bu menuyu inceleyelim

Android Options Menu 1
Yeni bir proje oluşturalım ben adını Options1 olarak kaydettim
android-options-menu-1   Resimde de gördüğünüz gibi Menu 1 Menu 2 Menu 3 adında 3 adet  menusu olan bir options menu hazırlayacağız

 

 

 

 

 

 

 

 

 

 

Menulerimizi res>menu içerisinde bir xml dosyasından yükeleyeceğiz. Menülerimizi program içerisinde de tanımlayabiliriz şimdilik xml dosyasından nasıl yüklediğimizi inceleyelim
res>menu>options_menu1.xml
<?xml version=”1.0″ encoding=”utf-8″?>
<menu xmlns:android=”http://schemas.android.com/apk/res/android” >
<item android:id=”@+id/menu1″ android:title=”Menu 1″/>
<item android:id=”@+id/menu2″ android:title=”Menu 2″/>
<item android:id=”@+id/menu3″ android:title=”Menu 3″/>
</menu>
id ve title tanımlaması yaparak options menümüzün elemanlarını oluşturduk
şimdi bunu activity dosyamıza yükleyelim
Options1Activity.java

package com.ademaktas;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
public class Options1Activity extends Activity    {
    protected void onCreate (Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        setContentView(R.layout.options1);
    }
    public boolean onCreateOptionsMenu(Menu menu){
        getMenuInflater().inflate(R.menu.options_menu1,menu);
        return true;
    }
}

Burası activity dosyamızı yüklerken her zaman kullandığımız method

 protected void onCreate (Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        setContentView(R.layout.options1);
    }

activity dosyamıza menuyu yüklerken sadece aşağıdaki methodu kullanıyoruz

public boolean onCreateOptionsMenu(Menu menu){
        getMenuInflater().inflate(R.menu.options_menu1,menu);
        return true;
    }

options menu methodunu kullanırken gerekli kütüphaneleri projeye dahil etmek için eclipse içerisinde
CTRL +SHIFT + O tuşuna basabilirsiniz.
Diğer örneklerde options menulerimizi kod yapısı içerisinde nasıl yüklendiğini ve event olaylarını anlatacağım

Şimdi options menu event tıklanma olayını anlamak için bir örnek yapalıö

Yeni bir proje oluşturalım ben adını Options2.java yaptım.

Menu itemlerinden birine tıkladığımızda ilgili itemin adını ekrana toast methodu ile yazdıracağız

 

 

 

 

 

 
Menulerimizi kaydettiğimiz xml dosyası. res>menu klasoru içerisinde kaydettiğimizi unutmayalım
options_menu2.xml

<menu xmlns:android=”http://schemas.android.com/apk/res/android”>
<item android:id=”@+id/item1″ android:title=”item 1″/>
<item android:id=”@+id/item2″ android:title=”item 2″/>
<item android:id=”@+id/item3″ android:title=”item 3″/>
</menu>

Menüleri oluştururken bir id belirledik bir de title belirledik. Her menü için farklı bir id vermelisiniz

java dosyamız
Options2Activity.java

package com.ademaktas;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Toast;
public class Options2Activity extends Activity    {
    @Override
    protected void onCreate (Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        setContentView(R.layout.options2);
    }
    @Override
    public boolean onCreateOptionsMenu(Menu menu){
        getMenuInflater().inflate(R.menu.options_menu2,menu);
        return true;
    }
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case R.id.item1:
                Toast.makeText(getApplicationContext(),"item 1 seçildi ",Toast.LENGTH_LONG).show();
            return true;
            
            case R.id.item2:
                Toast.makeText(getApplicationContext(),"item 2 seçildi",Toast.LENGTH_LONG).show();            
            return true;
            
            case R.id.item3:
                Toast.makeText(getApplicationContext(),"item 3 seçildi",Toast.LENGTH_LONG).show();
            return true;
            
            default:
            return super.onOptionsItemSelected(item);
        }
    }
}

Şimdi bu kod yapısını inceleyelim

onCreate ve onCreateOptionsMenu olayını yukarıda anlatmıştık burayı geçiyorum

@Override
    public boolean onOptionsItemSelected(MenuItem item)

options menu tıklanıp tıklanmadığı durumunu onOptionsItemSelected methodu ile yapıyoruz

switch (item.getItemId()) {
            case R.id.item1:
                Toast.makeText(getApplicationContext(),"item 1 seçildi ",Toast.LENGTH_LONG).show();
            return true;

Menuitem kontrolu ile tıklanan itemin hangisi olduğunu getItemId() ile aldık Daha sonra case break döngüsü içerisinde R.id.item1 menu içerisinde oluşturduğumuz id leri girip sorgulattık

ve dönen sonucu Toast ile ekrana yazdırdık.

bir örnek daha yapalım

Android Options Menu 3 Options Menü’ye icon eklemek

Bu örneğimizde Android 2.3.x ve öncesi versiyonlarda nasıl göründüğünü inceleyeceiz

Options3Activity.java

package com.ademaktas;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;

public class Options3Activity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        setContentView(R.layout.options3);
    }
    @Override 
    public boolean onCreateOptionsMenu(Menu menu){
        MenuInflater inflater= getMenuInflater();
        inflater.inflate(R.menu.options_menu3,menu);
        return true;
    }

}

Layout dosyamız

options_menu3.xml

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item 
    android:id="@+id/open" 
    android:icon="@drawable/icon_open" 
    android:showAsAction="ifRoom"
    android:title="Yeni"/>   
<item 
    android:id="@+id/save" 
    android:icon="@drawable/icon_save" 
    android:showAsAction="ifRoom"
    android:title="Kaydet"/> 
</menu>
2.3.x versiyonunda
android-options-menu-3
3.0 ve sonrası
android-options-menu-3-1

options_menu4.xml

android-options-menu-4 Telefonumuzun menu tuşuna bastığımızda karşımıza çıkacak bu menu elemanlarını, bu kez bir xml dosyası içerisinde değil program içerisinde tanımladım

 

 

 

 

 

 

 

 

 


Options4Activity.java
package com.ademaktas;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;

public class Options4Activity extends Activity {
    @Override
    public void onCreate (Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        setContentView(R.layout.options4);        
    }    
    private static final int BIR =Menu.FIRST;
    private static final int IKI=Menu.FIRST+1;    
    @Override
    public boolean onCreateOptionsMenu(Menu menu){
        super.onCreateOptionsMenu(menu);
        menu.add(Menu.NONE,BIR,0,"Birinci");
        menu.add(Menu.NONE,IKI,1,"İkinci");        
        return true;        
    }
}

Gelelim ilgili kod alanına

 private static final int BIR =Menu.FIRST;
    private static final int IKI=Menu.FIRST+1;    
    @Override
    public boolean onCreateOptionsMenu(Menu menu){
        super.onCreateOptionsMenu(menu);
        menu.add(Menu.NONE,BIR,0,"Birinci");
        menu.add(Menu.NONE,IKI,1,"İkinci");        
        return true;        
    }

İlgili menu elemanlarını tanımladıkdan sonra menu.add methodu ile oluşturduk

Menu.NONE,BIR,0,"Birinci"

Sırası ile  Menu.NONE: grup idsi, BIR: tanımlanan menü elemanını, 0: sırasını, Birinci: menu adı

 

Cevapla

E-posta adresiniz yayınlanmayacak. Required fields are marked *

*


5 × = otuz beş

Şu HTML etiketlerini ve özelliklerini kullanabilirsiniz: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>