Android Options Menu Nasıl Kullanılır

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.,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) {
Toast.(this,"İtem id: "+item.getItemId(),Toast.);
Toast temp=Toast.(this,"Toast Gösterildi",Toast.);
switch (item.getItemId()){
case R.id.:
temp.show();
break;
case R.id.:
ProgressDialog dial=new ProgressDialog(MainActivity.this);
dial.setMax(100);
dial.show();
break;
case R.id.:
Log.("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.

Computer Engineer,Sociologist, CSE Master Student

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store