Android Studio Options Menu

Sabahattin Çiçek
3 min readJul 4, 2021

--

Android Studio’da nasıl options menu yapılır?(JAVA)

Android Studio’da bir çok menu türü var. Ben bu yazıda size en basit olan ‘options menu’ yü göstereceğim. Bunun için öncelikle yeni bir proje oluşturup empty activity seçin.

res klasörüne sağ tıklayarak new → Android Resource File seçin.

Çıkan pencerede dosyaya isim verin. Ben ‘options_menu’ ismini verdim. İsim verirken şunu unutmayın Android Studio .xml dosyalarını isimlendirirken büyük harf veya alt çizgi dışındaki özel karakterlere izin vermez. İkinci sıradaki Resource type kısmını ‘menu’ seçtiğinizden emin olduktan sonra OK a basın.

Android Studio sizin için res klasörünün altında ‘menu’ klasörü oluşturup az önce yarattığınız dosyayı bu klasörün içerisine alacak. Yarattığınız dosyayı açın ve içerisine aşağıdaki kodları yazın.

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

<item
android:id="@+id/anaSayfa"
android:title="Ana Sayfa"></item>

<item
android:id="@+id/ayarlar"
android:title="Ayarlar"></item>

<item
android:id="@+id/bul"
android:title="Bul"></item>
</menu>

Bütün bunları doğru yaptığınızdan emin olduktan sonra activity_main.xml dosyasını açın ve şu kodu ekleyin:

tools:menu="@menu/options_menu"

Böylece options_menu.xml dosyası ve activity_main.xml dosyası bağlanmış oldu. Son olarak activity_mail.xml dosyası bu şekilde görünecek.

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
tools:menu="@menu/options_menu"

android:layout_height="match_parent"
tools:context=".MainActivity">

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />

</androidx.constraintlayout.widget.ConstraintLayout>

Şimdi java kodlarına geçebiliriz.

MainActivity.java dosyasını açın. Options menu oluşturabilmeniz için MainActivity.java dosyasında öncelikle bir metot çağırmanız gerekli.

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

Metotun adından da anlaşılacağı gibi bu metot options menu öğesini yaratmanızı sağlıyor. Ancak sadece bu metotla işinizi halledemezsiniz. Menüdeki hangi seçeneği seçtiğinizi algılayacak bir metota daha ihtiyacınız olacak. Bu metot yardımıyla kullanıcının hangi seçeneği seçtiğini anlayıp ona göre uygulamanıza işlem yaptırabilirsiniz. Ben örnek olarak aşağıdaki kodları yazdım.

@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() == R.id.anaSayfa) {

//kodlarınız buraya
System.out.println("ana sayfaya gidildi");

} else if (item.getItemId() == R.id.ayarlar) {

//kodlarınız buraya
System.out.println("ayarlara gidildi");

}else if (item.getItemId() == R.id.bul) {

//kodlarınız buraya
System.out.println("bul öğesi seçildi");

}
return super.onOptionsItemSelected(item);

}

Bu işlemlerin sonunda MainActivity.java dosyası bu şekilde görünecek;

package com.ornekuygulama.optionsmenuapplication;

import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;

public class MainActivity extends AppCompatActivity {

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


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

@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() == R.id.anaSayfa) {

//kodlarınız buraya
System.out.println("ana sayfaya gidildi");

} else if (item.getItemId() == R.id.ayarlar) {

//kodlarınız buraya
System.out.println("ayarlara gidildi");

}else if (item.getItemId() == R.id.bul) {

//kodlarınız buraya
System.out.println("bul öğesi seçildi");

}
return super.onOptionsItemSelected(item);

}
}

Bütün bunları doğru yaptıysanız eğer ‘options menu’nüz sorunsuz bir şekilde çalışacaktır.

Sağlıcakla kalın yazılımsız kalmayın.

--

--