kodbankasi http://kodbankasi.org/kodbankasi

Android Options Menü Oluşturma

Bu yazımda android programlama dilinde nasıl menü oluşturulacağını anlatacağım. Android uygulama menüleri hemen hemen her uygulamada kullanılan bir bileşendir. Gerek web uygulamaları olsun gerek native uygulamalar olsun android programlarken menüler olmazsa olmazlardandır.

Öncelikle her zamanki gibi yeni bir proje açarak uygulamamıza başlıyoruz. Bu uygulamamızda activity_main.xml dosyamızı yani ana ekran dosyamızı kullanmayacağız. res>>layout klasörüne sağ tıklayıp yeni bir xml dosyası oluşturuyoruz. Adını ben menu.xml olarak oluşturdum.

Bu uygulamanın diğer uygulamalardan iki önemli farkı olacak. Birincisi: menu.xml dosyamızda herhangi bir layout kullanmayacağız, sadece menu ve item kullanacağız. İkincisi ise ana class dosyamızda onCreate dışında iki adet farklı metod kullanacağız. Bunun ilki onCreateOptionsMenu ikincisi ise onOptionsItemSelected metodu olacak. Kullanımlarını göstermeden önce menu.xml dosyamızı aşağıdaki gibi kodluyoruz.

<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/anasayfa"
android:icon="@drawable/home"
android:title="Anasayfa"/>
<item android:id="@+id/kaydet"
android:icon="@drawable/save"
android:title="Kaydet" />
<item android:id="@+id/ayarlar"
android:icon="@drawable/settings"
android:title="Ayarlar" />
</menu>

Burada bir menu tagı açıp içerisine 3 adet item tanımlıyoruz. Her birine birer id atıyoruz ve her birine küçük png formatında logolar atıyoruz. Bunu internetten küçük bir araştırmayla birçok logo veya resim bulabilirsiniz. Bir sonraki aşamada xml kodundan çıkıp java kodlarımızı yazacağımız MainActivity.java dosyamıza tıklıyoruz ve onCreate() metodu kapandıktan sonra aşağıdaki metodları ve kodları yazıyoruz.


@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.layout.menu, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// TODO Auto-generated method stub
switch(item.getItemId()){
case R.id.anasayfa:
Toast.makeText(MainActivity.this, “Anasayfa Tıklandı”,Toast.LENGTH_SHORT).show();
case R.id.kaydet:
Toast.makeText(MainActivity.this, “Kaydet Tıklandı”,Toast.LENGTH_SHORT).show();
case R.id.ayarlar:
Toast.makeText(MainActivity.this, “Ayarlar Tıklandı”,Toast.LENGTH_SHORT).show();

}
return super.onOptionsItemSelected(item);
}

}

}

Bu kodları incelediğinizde aşağı yukarı ne iş yaptığını anlamanız gerekiyor. onCreateOptionsMenu() metodunda menümüzü kullanmak için yeni bir menü inflater oluşturuyoruz. Ardından bu inflater’a oluşturduğumuz menu.xml dosyamızı tanıtıyoruz. onOptionsItemSelected metodunda ise menudeki itemlere tıklandığında yapılacak görevleri atıyoruz. Bizim programımızda sadece Toast mesajı yazdıracağız.

menu

Anasayfaya tıkladıktan sonraki ekran :

menu2

Ayarlar tıklandıktan sonra :

menu3

Bol kodlu günler dilerim…

Bir önceki yazımız olan Android Spinner kullanımı başlıklı yazımızı da inceleyebilirsiniz.

7 Yorumlar

  1. size zahmet adminbey ekran çıkıntılarını koyabilir misiniz ?

    • Ekran çıktıları eklendi.

      switch case’ler içerisindeki break komutlarını unutmuşum.Onlar da eklendi. Çıktıları koymadığım için de gözümden kaçmış.
      Ayrıca teşekkür ediyorum bunun için :)

      Bol kodlu günler dilerim…

  2. Bir projemde kullanmak için aradığım bir konuydu. Teşekkürler, siteniz çok güzel gerçekten.

  3. Yazı için teşekkürler, çok faydalı oldu benim için.

  4. Teşekkürler güzel paylaşımlar var sitenizde.

  5. hocam cok guzel anlatmışşınız ben hakkımda bolumune basında ekrana pop-up açıp ad vesoyad tarzı syler yazmasını istıyorum elimde popup ornegı var ama bunu optıon menudekı hakkımda tusuna atamayı yapamıyorum

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
    // TODO Auto-generated method stub
    MenuInflater menuInflater = getMenuInflater();
    menuInflater.inflate(R.menu.menum, menu);
    return super.onCreateOptionsMenu(menu);
    }
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
    // TODO Auto-generated method stub
    switch (item.getItemId())
    {
    case R.id.item1:
    Toast.makeText(this, “Hakkımızda seçildi”, 5000).show();
    return true;

    case R.id.item2:
    System.exit(3000);
    return true;
    default:
    return super.onOptionsItemSelected(item);
    }

    }

    }

    BURADAKİ case R.id.item1: BÖLÜMÜNE BU KODU EKLEYEMEDİM YARDIMCI OLUNUZ LUTFEN

    final Button btnOpenPopup = (Button)findViewById(R.id.openpopup);
    btnOpenPopup.setOnClickListener(new Button.OnClickListener(){

    @Override
    public void onClick(View arg0) {
    LayoutInflater layoutInflater
    = (LayoutInflater)getBaseContext()
    .getSystemService(LAYOUT_INFLATER_SERVICE);
    View popupView = layoutInflater.inflate(R.layout.popup, null);
    final PopupWindow popupWindow = new PopupWindow(
    popupView,
    LayoutParams.WRAP_CONTENT,
    LayoutParams.WRAP_CONTENT);

    Button btnDismiss = (Button)popupView.findViewById(R.id.dismiss);
    btnDismiss.setOnClickListener(new Button.OnClickListener(){

    @Override
    public void onClick(View v) {
    // TODO Auto-generated method stub
    popupWindow.dismiss();
    }});

    popupWindow.showAsDropDown(btnOpenPopup, 50, -30);

    }});
    }
    }

  6. Hocam merhaba, benim naçizane bir sorum olacaktı. Cevap verirseniz memnun olurum. Bu arada bu makakeyi e-posta adresime de yolladım lazım oldukça faydalanırım. emeğinize sağlık. sağolun varolun.
    sorum şu. Ben Android bir basit uygulama yapıcam. sadece 5tane ses dosyası yada liste diyelim. ve her şarkı yada müzik dosyası için bir butona basınca çalacak. diğerlerinden birine basınca da butonu lna basılan ötecek şekilde. Bunun için Android Stüdyo’da kısaca adımları nedir. başlıklar bile yeter bana. benim kılavuzum yok. bu basit uugulama için ne gerekli inanın o kadar araştırdım bulamadım. örnek. java projesi oluşturdum içine buton ekleyip süsledim. raw klasörü oluşturup içine beş müzik /ses ekledim. şimdi ne yapmam lazım. Yani önce bir sayfa açıp içine atmak lazım ya web sayfası olunca bunda ne yapmam lazım. İşi baştan öğreniyorum bu arada emin olun sadece adımları öğrensem rotam düzelir sevgiler

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak.

Bu yazı da ilginizi çekebilir !

accelerometer

Android Sensör Kullanımı

Bir süre ara verdiğimiz android derslerimize kaldığımız yerden devam ediyoruz. Bir önceki makalemizde options menü ...