ANDROİD STUDİO ‘DA OPTİONS MENÜ VE CONTEXT MENÜ OLUŞTURMA

Menü, uygulamanın gerekli ayarları, kullanıcıya seçimler yapma olanağı veren, uygulamadan çıkış gibi görevlerin genel olarak yapıldığı bileşenlere menü çubukları denir. Android uygulamalarda menülerin önemi çok büyüktür. Çünkü bazı uygulamalarda geliştirici, diğer uygulamalarını tanıtmak için uygulamalar diye bir sekme ekler menülere. Hemen hemen çoğu uygulamada hakkında sekmesi vardır. Buda geliştirici hakkında bilgi içerir dolayısıyla önemlidir bizim için. Bu yazımda Android için menüleri ve kısaca nasıl oluşturulduklarından bahsedeceğim.

Öncelikle Android ‘de 2 tip menü vardır.

1-) Options Menü

2-) Context Menü

Options Menü bir Activitye bağlı yani bir Activitiye veriyoruz. Şimdi kodlamayla bunu göstereyim. İlk önce xml ile menüyü kodlamamız gerekiyor. Daha sonra java ile uygulamamıza menü nesnesi ekleyeceğiz.

 Android Studionun sol tarafında res var. Üstüne gelince sağ tıklayıp  new → Android resource directory → Buradan isim vereceğiz. Menü diyelim. Resin altına menü klasörü gelecek. Oradan tekrar sağ tıklarıp new → resource file→  menü1  diyelim.

Şimdi menü1.xml dosyamızın kodlamasını yapalım.

 Menü ile yeni menü oluşturuyoruz. İtem ile menüye yeni nesne ekliyoruz. İd parametresinin nesnenin kimliği olarak kullanılır title  parametresi nesnenin başlığını belirlememizi sağlıyor.

Bu adımdan sonra yapmamız gereken şey oluşturduğumuz menüyü javayı kullanarak uygulamamıza eklemek.

public boolean onCreateOptionsMenu(Menu menu) {
      
        return super.onCreateOptionsMenu(menu);
    }

Classımız burada parametre alıyor.

getMenuInflater().inflate(R.menu.menu1,menu);

Bu metodla paframetreye bağlıyoruz.

Şimdi ekranımızda 3 tane seçenek olsun istiyoruz. Bunun için de şu şekilde bir claas oluşturalım.

public boolean onOptionsItemSelected(MenuItem item) {
        if(item.getItemId()==R.id.item1)
            Toast.makeText(this,"Seçenek 1 seçildi",Toast.LENGTH_SHORT).show();

        else if(item.getItemId()==R.id.item2)
            Toast.makeText(this,"Seçenek 2 seçildi",Toast.LENGTH_SHORT).show();
        else if(item.getItemId()==R.id.item3)
            Toast.makeText(this, "Seçenek 3 seçildi", Toast.LENGTH_SHORT).show();
        else if(item.getItemId()==R.id.subitem1)
            Toast.makeText(this,"Seçemek subitem1 seçildi",Toast.LENGTH_SHORT).show();
        else if(item.getItemId()==R.id.subitem2)
            Toast.makeText(this,"seçenek subitem2 seçildi",Toast.LENGTH_SHORT).show();

        return super.onOptionsItemSelected(item);
    }
}

Seçeneklere tıklandığında ekrana mesaj vermesi için if-else kullandık . Uygulamamızı çalıştıralım.

Gördüğümüz gibi ekranın sol tarafına 3 nokta geldi.

3 noktaya geldiğimizde bu seçenekler karşımıza çıkacak. Bu şekilde Activiteye menüyü bağladık .

OptionsMenüde ekranın sağ tarafında üç nokta oluşuyordu ve seçeneklerimiz vardı yani activitiye menüyü bağlamıştık. ContextMenüde ise bir nesneye menüyü bağlıyoruz. Kullanıcı nesneyi uzun tıkladığında Android içerik menüsü görünür. Ayrıca kayan menü olarak da bilinir. Üzerinde işlem yapılırken seçilen içeriği etkiler. Öğe kısayollarını ve simgelerini desteklemez. Şimdi ContextMenüyü nesneye nasıl bağlarız? Bunu örnekle göstermeye çalışayım. Mesela bir buton oluşturalım ve butona Id verelim.

 Button contextmenubutton = (Button) findViewById(R.id.button);

Şimdi bu butona aşağıdaki metotla menüye bağlıyoruz..

   @Override
    public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
        getMenuInflater().inflate(R.menu.menu1,menu);
        super.onCreateContextMenu(menu, v, menuInfo);
    }

getMenuInflater().inflate(R.menu.menu1,menu); metoduyla parametreye bağlıyoruz.

Şimdi seçenekleri ekleyip ekrana mesaj verelim.

@Override
    public boolean onContextItemSelected(MenuItem item) {
        if(item.getItemId()==R.id.item1)
            Toast.makeText(this,"Seçenek 1 seçildi",Toast.LENGTH_SHORT).show();

        else if(item.getItemId()==R.id.item2)
            Toast.makeText(this,"Seçenek 2 seçildi",Toast.LENGTH_SHORT).show();
        else if(item.getItemId()==R.id.item3)
            Toast.makeText(this, "Seçenek 3 seçildi", Toast.LENGTH_SHORT).show();
        else if(item.getItemId()==R.id.subitem1)
            Toast.makeText(this,"Seçemek subitem1 seçildi",Toast.LENGTH_SHORT).show();
        else if(item.getItemId()==R.id.subitem2)
            Toast.makeText(this,"seçenek subitem2 seçildi",Toast.LENGTH_SHORT).show();
        return super.onContextItemSelected(item);
    }
}

Evet şuan bir buton nesnesine menüyü verdik.

Yorum bırakın