#13 – Menü Oluşturma
Menüler birçok uygulama tipinde kullanılan ve kullanıcıya ayar ya da seçimler yapma olanağı veren bileşendir. Hemen hemen her uygulamada geliştirici hakkında bilgi içeren hakkında sekmesi de menülere eklenir. Bazı uygulamalarda da geliştirici diğer uygulamalarını tanıtmak için uygulamalar diye bir sekme ekler menülere. Bu yüzden android uygulamaları için menülerin önemi çok büyüktür. Bu yazımda android menüleri nasıl oluşturulur? sorusuna cevap vermeye çalıştım. Umarım yararı olur. Hadi başlayalım
Android te üç tip menü vardır, bunlar:
1. Options Menu
2. Context Menu
3. Popup Menu
Bu yazımda Options Menu hakkında konuşacağız, diğer tipleri ileriki yazılarımda anlatmayı planlıyorum.
İlk önce xml ile menüyü kodlamamız gerekiyor. Daha sonra java ile uygulamamıza menü nesnesi olarak ekleyeceğiz.
XML ile Uygulamamızın Menüsünü Tanımlama
Androidte menü oluşturmak için standart bir xml formatı vardır. Biz de bu formatı kullanacağız.
/res/menu dosyasına yeni bir xml dosyası açıp ismine menu.xml diyelim. Daha sonra aşağıdaki kodları girin, açıklamaları kodların altında verdim:
<?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android"> <!-- Single menu item Set id, icon and Title for each menu item --> <item android:id="@+id/paylas" android:icon="@drawable/icon_search" android:title="Paylaş" /> <item android:id="@+id/takimsec" android:icon="@drawable/icon_bookmark" android:title="Takım Seç" /> <item android:id="@+id/oyver" android:icon="@drawable/icon_share" android:title="Oy Ver" /> <item android:id="@+id/uygulamalar" android:icon="@drawable/icon_share" android:title="Uygulamalar" /> <item android:id="@+id/hakkinda" android:icon="@drawable/icon_save" android:title="Hakkında" /> </menu>
Not: Menüyü oluştururken isimleri ve simge resimlerini rastgele seçtim. Pek uygun simgeler değiller
Yukarıdaki kodlar ile alakalı kısa bir açıklama yapmak gerekirse:
menu ile yeni menü oluşturuyoruz. item ile menüye yeni nesne ekliyoruz. id parametresinin nesnenin kimliği olarak kullanıldığını daha önceki yazılarımda söylemiştim. icon parametresi menü nesnesinin simgesini belirlememizi sağlıyor. Simge resimlerini drawable dosyası altına kaydediyoruz. 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. Bunun için aşağıdaki adımları takip edin.
main.java dosyamızı açıyoruz. Burada otomatik olarak üretilmiş onCreateOptionsMenu metodunu göreceksiniz. Bu metodun altındaki kodları aşağıda verdiğim şekilde değiştirmeniz işimizi görecektir.
public boolean onCreateOptionsMenu(Menu menu) { MenuInflater menuInflater = getMenuInflater(); menuInflater.inflate(R.menu.menu, menu); return true; }
Gördüğünüz gibi menuInflater sınıfındaki inflate metodunu kullanarak menümüzü ekledik. Bunun için de parametre olarak şunu girdik: R.menu.menu . Çünkü biz menü oluşturmak için yazdığımız kodu menu dosyası altında menu.xml diye kaydetmiştik.
Uygulama Örneğimizi Test Edelim:
Android te Menü Oluşturma adlı yazımızın sonuna geldik, bütün android evreni ziyaretçilerine yararlı olmasını umarım.
Bir önceki Android Programlama 12- Uyarı Diyalogları(Alert Dialogs) adlı yazımda android teki uyarı diyalogları uygulama örneği ile desteklenerek anlatılmıştır.
Kolay gelsin
la rГ©ponse Excellente, est gaillard
Hocam dersler neden bitti ?
merhaba dersler bitmedi, Elektrik-Elektronik Mühendisliği 4. sınıf öğrencisiyim bu yüzden şu an çok yoğunum. Biraz ara verdim derslere. Ama yakında detaylı,açıklamalı, örnekli ve uygulamalı derslerim devam edecek.
Beklemedeyizzz…
Hocam lütfen derslere devam edin sizin kadar güzel anlatıp kodları verip yazılı olarak detaylı anlatan başka çk az kişi var lütfen devam edin devamını bekliyoruz, takipteyiz..
Adamsın be ADAM! Tamda böyle dersler arıyordum. Bulduklarımın yarım veya eksik oluyordu anlatım dediğin böyle olur : )
Teşekkürler Uğur bey, zaman ayırabilirsem dersler devam edecek ve hep ayrıntılı, eksiksiz yani ‘adam’ gibi anlatılıcak :).
Takipteyim 😉
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);
}});
}
}