Android Studio ile Menu (Options Menu) Tasarımı
Merhaba. Bu dersimizde android studio kullanarak options menu tasarımı yapacağız .
Adım adım menumuzu tasarlayalım.
- İlk adımda menumüz için kullanacağımız iconları oluşturacağız.
Project klasöründeki res klasörüne sağ tıklayıp New->Vector Asset Seçiyoruz.
Yukarıdaki kırmızı işaretlenmiş alana tıklayıp üstte işaretli alana tıklayıp, arama kutusuna exit yazdığınızda ilgili simge çıkacakır. Simgeyi seçtikten sonra üstteki ekranda name kısmına cikis yazalım. Next ve Finish diyerek simgemizi ekleyelim. Bu adımı ayarlar, hakkimizda, paylas iconlari içinde gerçekleştirin. - İcon ekleme işimiz bittikten sonra res klasörünün üstünde sağ tıklayıp res->New->Android Resource File seçeneğini seçin.
Yukarıdaki ekranda File name kısmına anamenu yazalım. Resoruce Type alanından Menu’ yu seçelim. - Yukarıdaki adımı tamamladığınzıda res klasörün altına menu isminde bir klasör ve içinede anamenu.xml dosyası oluşturulacak. anamenu.xml dosyasını açıp içine aşağıdaki kodları yazınız.
<?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> <item android:id="@+id/ayarlar" android:icon="@drawable/ayarlar" android:title="Ayarlar" app:showAsAction="never"/> <item android:id="@+id/paylas" android:title="Paylaş" android:icon="@drawable/paylas" app:showAsAction="never"/> <item android:id="@+id/hakkimizda" android:title="Hakkımızda" android:icon="@drawable/hakkimizda" app:showAsAction="never"/> <item android:id="@+id/cikis" android:title="Çıkış" android:icon="@drawable/cikis" app:showAsAction="never"/> </menu>
- Menü tasarımı bittikten sonra Mainactivity.java dosyasınıa açıp içerisine aşağıdaki kodları yazıyoruz.
Öncelikle menu dosyamızı activity dosyamızla ilişkilendirmek için@SuppressLint("RestrictedApi")
@Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.anamenu,menu); if(menu instanceof MenuBuilder) { MenuBuilder m=(MenuBuilder) menu; m.setOptionalIconsVisible(true); } return super.onCreateOptionsMenu(menu); } kodunu ekliyoruz. Bu kod menumüzü activity mize bağlayacak.
Seçilen menü elemanlarına göre işlem yapmak için gerekli kodlar da aşağıdaki gibidir. Bu kodları seçime göre değiştirebilirsiniz.
@Override public boolean onOptionsItemSelected(@NonNull MenuItem item) { int secilen=item.getItemId(); if(secilen==R.id.ayarlar) { Toast.makeText(this, "Ayarlar Seçildi", Toast.LENGTH_SHORT).show(); return true; } else if(secilen==R.id.paylas) { Toast.makeText(this, "Paylaş Seçildi", Toast.LENGTH_SHORT).show(); return true; } else if(secilen==R.id.hakkimizda) { Toast.makeText(this, "Hakkımızda secildi", Toast.LENGTH_SHORT).show(); return true; } else if(secilen==R.id.cikis) { finish(); return true; } return super.onOptionsItemSelected(item); }
bunları ekledikten sonra Mainactiviy.java dosyamızın son hali aşağıdaki gibidir.
package com.example.mart42025; import android.annotation.SuppressLint; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.widget.Toast; import androidx.activity.EdgeToEdge; import androidx.annotation.NonNull; import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.view.menu.MenuBuilder; import androidx.core.graphics.Insets; import androidx.core.view.ViewCompat; import androidx.core.view.WindowInsetsCompat; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); EdgeToEdge.enable(this); setContentView(R.layout.activity_main); ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main), (v, insets) -> { Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars()); v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom); return insets; }); } @SuppressLint("RestrictedApi") @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.anamenu,menu); if(menu instanceof MenuBuilder) { MenuBuilder m=(MenuBuilder) menu; m.setOptionalIconsVisible(true); } return super.onCreateOptionsMenu(menu); } @Override public boolean onOptionsItemSelected(@NonNull MenuItem item) { int secilen=item.getItemId(); if(secilen==R.id.ayarlar) { Toast.makeText(this, "Ayarlar Seçildi", Toast.LENGTH_SHORT).show(); return true; } else if(secilen==R.id.paylas) { Toast.makeText(this, "Paylaş Seçildi", Toast.LENGTH_SHORT).show(); return true; } else if(secilen==R.id.hakkimizda) { Toast.makeText(this, "Hakkımızda secildi", Toast.LENGTH_SHORT).show(); return true; } else if(secilen==R.id.cikis) { finish(); return true; } return super.onOptionsItemSelected(item); } } Bu işlemleri yaptıktan sonra normal de menünüzün gözükmesi gerekiyor. Ama menü gözükmüyorsa kullandığınız tema option menuyü desteklemiyordur. Bunun için manifest klasörünün altındaki AndroidManifest.Xml dosyasını açınız Tema satırını
android:theme="@style/Theme.Material3.Light" şeklinde değiştiriniz. Burada Material3 teması yerine farklı temalarda kullanabilirsiniz. Uygulamamızı çalıştırdığımızda son hali aşağıdaki gibidir.
Yorum gönder
Yorum yapabilmek için oturum açmalısınız.