Android :: Options Menu ve Alt Menü

Android’in iPhone’dan farklı olarak menü tuşuna sahip olması ve bu menü tuşunun işlevini uygulamamız için özelleştirebiliyor olmamız bayağı faydalı bir şey. Yine bir önceki yazımda olduğu gibi projem üzerinde çalışırken kullanmak zorunda kaldığım options menü ve alt menülerden bahsedeceğim.

Peki nedir bu options menü?


Şu yukardaki görselde de görüldüğü üzere cihazın “menu” tuşuna basıldığında aşağıdan açılan menüdür. Seçenek sayısı 6 taneye kadarsa hepsi orda görünür, 6’dan fazla ise 6. seçenek “more” olur ve diğer seçenekleri onu kullanarak görebiliriz. Ayrıca burda görünen menülerin de altında menüler olabilir. Bunlar da submenülerdir. Xml dosyasında tanımlayarak yapmak daha yaygın olsa da ben daha az tercih edilen yöntemle yapacağım. Bunun için eleştiriye açığım tabi.
Öncelikle menünün olmasını istediğimiz Activity’nin onCreateOptionsMenu() metodunu override etmemiz gerekiyor. İçerisine de menü elemanlarını eklememiz lazım. Bunların da alt menülerinin olabileceğini görelim.

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		SubMenu mMenu = menu.addSubMenu("Seçenek 0");

		mMenu.add(1, 11, 0, "Alt seçenek 1");
		mMenu.add(1, 12, 0, "Alt seçenek 2");
		mMenu.add(1, 13, 0, "Alt seçenek 3");
		mMenu.add(1, 14, 0, "Alt seçenek 4");

		menu.add(0, 2, 0, "Seçenek 1");
		menu.add(0, 3, 0, "Seçenek 2");
		menu.add(0, 4, 0, "Seçenek 3");
		menu.add(0, 5, 0, "Seçenek 4");
		menu.add(0, 6, 0, "Seçenek 5");

		return true;
	}

Activity içine yukardaki kodu eklediğimizde onCreateOptionsMenu() metodunu override etmiş oluyoruz ve içine 1 container menü ile 5 tane de seçenek eklemiş oluyoruz. Container menü diye bir terim yok belki de onu ben uydurdum ama işlev olarak benziyorlar çünkü ilk seçenek (Seçenek 0) 4 ayrı alt seçenek içeriyor. Menüye eleman eklerken 4 parametre kullandım. Bunları da aşağıdaki görsel özetliyor.

Uygulamayı bu haliyle çalıştırıp cihazın/emülatörün “menü” tuşuna bastıktan sonra aşağıdakine benzer bir görüntü elde etmemiz gerekir.

Sıfırıncı seçeneği seçtikten sonra da aşağıdaki gibi.

Menümüzü ve alt menüsünü görüntülemede sıkıntı yok. Şimdi bu seçeneklerden herhangi biri seçildiğinde Android’e ne yapması gerektiğini söyleyelim. Bunun için de onOptionsItemSelected() metodunu override etmemiz gerekecek. Aşağıdaki kod ile de bunu yapalım.

	@Override
	public boolean onOptionsItemSelected(MenuItem item) {
		switch (item.getItemId()) {
		case 11:
			secenek11Tiklandi();
			return true;
		case 12:
			secenek12Tiklandi();
			return true;
		case 13:
			secenek13Tiklandi();
			return true;
		case 14:
			secenek14Tiklandi();
			return true;
		case 2:
			secenek2Tiklandi();
			return true;
		case 3:
			secenek3Tiklandi();
			return true;
		case 4:
			secenek4Tiklandi();
			return true;
		case 5:
			secenek5Tiklandi();
			return true;
		case 6:
			secenek6Tiklandi();
			return true;
		default:
			return super.onOptionsItemSelected(item);
		}
	}

Bundan sonra da artık gidip aşağıdaki metodları oluşturmalı ve içeriğini ne yapılmasını istediğimiz şekilde doldurmalıyız:

  • secenek11Tiklandi()
  • secenek12Tiklandi()
  • secenek13Tiklandi()
  • secenek14Tiklandi()
  • secenek2Tiklandi()
  • secenek3Tiklandi()
  • secenek4Tiklandi()
  • secenek5Tiklandi()
  • secenek6Tiklandi()

İlgili olabilecek yazılar:

Java %100 Nesne Yönelimli Bir Programlama Dili Midir?
Java :: Jersey ile RESTful Webservislere Eclipse, Maven ve Apache Tomcat Kullanarak Giriş Yapalım
EcaHack Hackathon @ Android Developer Days 2013 Ardından
Android :: JSON Parse İşlemleri – 2
Android :: JSON Parse İşlemleri – 1


Android :: Options Menu ve Alt Menü” yazısına 2 yorum yapılmış.

  1. iPhone kullanıcıları Android’e geçtikleri zaman uygulamalarda hep geri butonu arıyorlar :) Onları düşünerekten belki..

Bir Cevap Yazın

This site uses Akismet to reduce spam. Learn how your comment data is processed.