Şimdi yükleniyor

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.

  1. İ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.vectorasset-png Android Studio ile Menu (Options Menu) Tasarımı
    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.
  2. İ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.
    menuolusturmaekrani-png Android Studio ile Menu (Options Menu) Tasarımı
    Yukarıdaki ekranda File name kısmına anamenu yazalım. Resoruce Type alanından Menu’ yu seçelim.
  3. 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>

     

  4. 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. 
    optionmenu-ekran-png Android Studio ile Menu (Options Menu) Tasarımı