Android Options Menu Nasıl Kullanılır

anıl kaynar
2 min readFeb 6, 2018

--

Bildiğiniz gibi Android uygulamalarının genellikle sağ üst köşesinde (başka köşelerde de olabilen) bir menu çeşididir.Şu şekilde işaretlenen yerde oluşur çoğu zaman:

Artık Android yeni sürümleri ile beraber kullanımı azalacak olsada geriye dönük uygulamalarda rahatça kullanılabilir. Konumuza gelecek olursak nasıl kullanacağız.

Kullanmak için öncelikle bize 1 adet menu şablonu gerekmektedir. Android’de alışık olduğumuz üzere bu şablonu Xml şeklinde elde edeceğiz öncelikle bir menu xml’i nasıl oluşturacağımızı gösterelim:

Ardından menu oluşturacağız. Ancak burada Activity’deki Elemanları değil kendi menü elemanlarını kullanacağız. Bunlar Menu item,Menu Search İtem vb şeyler örnek olarak verilebilir. Biz basitçe şöyle bir menu oluşturduk:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:android="http://schemas.android.com/apk/res/android"
>

<item android:title="Toast Göster"
android:id="@+id/Toastshow"
/>
<item android:title="ProgresDialog Göster"
android:id="@+id/progresshow"
/>
<item android:title="Do nothing"
android:id="@+id/donothing"
/>
</menu>

Görüldüğü gibi sadece title ve id vererek basit menü oluşturabiliyoruz. Ancak Options menu çok kapsamlı olabilir buna örnek olarak Google Chrome uygulamasındaki menü örnek gösterilebilir.

Ardından menümüzü Aktivitemize göstermemiz gereken nasılki Activitymizin Xml’ini OnCreate metodunda verdik bunu da OnCreateOptions Menu metodunda vereceğiz Şöyleki:

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

Artık menümüz gözükmektedir:

Peki buraya kadar her şey tamam. Peki dokunulması durumunda nasıl haberdar olacağı oda onOptionsItemSelected İsimli bir metod yardımıyla şu şekilde yapılacaktır:

@Override
public boolean onOptionsItemSelected(MenuItem item) {
//İtem id return some arbitary integer
Toast.makeText(this,"İtem id: "+item.getItemId(),Toast.LENGTH_LONG);
// .show();
// Toast.makeText(this," layout:"+R.id.Toastshow,Toast.LENGTH_LONG)
// .show();
Toast temp=Toast.makeText(this,"Toast Gösterildi",Toast.LENGTH_LONG);
switch (item.getItemId()){
case R.id.Toastshow:
temp.show();
break;
case R.id.progresshow:
ProgressDialog dial=new ProgressDialog(MainActivity.this);
dial.setMax(100);
dial.show();
break;
case R.id.donothing:
Log.e("Some","Some Logging Work as proper");
break;
}
return true;
}

Burada klasik bir Switch-case yapısı kullanılarak id değeri ile eşleşme yapılmıştır. Bunun yanı sıra menüye onClick olarak bir metod da verilebilir. Bu metodun mutlaka menünün oluşturulduğu aktivite(ler) içinde olması gereklidir.

--

--

anıl kaynar
anıl kaynar

Written by anıl kaynar

Computer Engineer,Sociologist, CSE Master Student

No responses yet