Android - Menü Kavramı -2
Orijinal Döküman
XML ile Menü Tanımlama
Tüm menü türleri için Android, menu itemleri tanımlarken aktiviti kodunuzda menü tanımlamak yerine standart XML formatını kullanma imkanı sağlar. Bu yöntem ile XML içindeki menu resourceler ile menu ve menuye ait tüm itemleri buradan tanımlamanız kod yazarken size büyük kolaylıklar sağlar. Bu şekilde tanımlanan menu kaynaklarını Menu nesnesinden inflate özelliğini kullanarak aktivitinizde veya fragmentinizide bu menüleri görüntüleyebilirsiniz.
Menu Resource kullanmak aşağıdaki faydalardan dolayı tercih edilir.
- XML de menu yapısını görüntülemek ve yapılandırmak daha kolaydır.
- Menunüz için tanımladığınız içeriği, uygulama kodunuzdan ayırır.
- Farklı platform sürümleri, ekran boyutları ve diğer düzenlemeler için alternatif menü tanımlamaları yapmanızı sağlar.
Menu tanımlamak için, projeniz içerisindeki res/menu dizini içerisinde XML dosyası oluşturmalı ve aşağıdaki elemanlar ile menü oluşturmalısınız.
- <menu></menu> Menu tanımlaması bu etiketler arasında yapılır. Menu dosyamız için bu etiket kök olmak zorundadır. Bu etiket bir veya daha fazla <item> ve <group> elemanı tutabilir.
- <item></item> Menu içindeki her bir itemi, MenuItem'ler oluşturur. Bu eleman, alt menüler oluşturmak için iç içe <menu> elemanı içerebilir.
- <group></group> <item> elemanı için opsiyonel görünmez bir containerdir. Menu itemlerini kategorize etme imkanı verir. Bu yöntem ile aktif durum ve görünürlük gibi bilgileri paylaşır.
game_menu.xml adında menu örneğimiz.
<?xml version ="1.0 encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/new_game"
android:icon="@drawable/ic_new_game"
android:title="@string/new_game"
android:showAsAction="ifRoom"/>
<item
android:id="@+id/help"
android:icon="@drawable/ic_help"
android:title="@string/help"/>
</menu>
<item> elemanı, tanımladığınız itemin görünüşü ve davranışını özelleştirmek için kullanabileceğiniz bir kaç nitelik sağlar. Bunlardan bazılar yukarıda kullanılmıştır.
android:id:
İtem için benzersiz bir ID tanımlanır. Bu id yardımıyla uygulama kodu içerisinden bu iteme erişim sağlanır.
android:icon:
Bu item için kullanmak istediğimi icon u gösterir.
android:title:
İtem başlığı için kullandığımız referans.
android:showAsAction:
İtemlerin action bar'da ne zaman ve nasıl görüneceğini tanımlar.
Bu niteliklerin yanı sıra çok sayıda özellik vardır, fakat bunlar kullanmanız gereken en önemli niteliklerdir. Men Resource dökümanını inceleyerek diğer nitelikler için daha fazla bilgi alabilirsiniz.
<item> elemanına alt birim olarak <menu> elemanı eklemesiyle dilediğiniz menu iteme bir alt menü ekleyebilirsiniz. Alt Menüler (SubMenu), uygulamanızın çok sayıda fonksiyon içerdiği durumlarda çok kullanışlı bir özellik olduğunu görebilirsiniz. Bu özellik ile menüleri, bilgisayarlarımızda yer alan menüler gibi (File,Edit,View...) tek bir başlık altında toplayarak organize edebiliriz.
Örnek:
<?xml version="1.0" encodin="utf-8"?>
<menu
xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/file"
android:title="@string/file"
<!-- " file" alt menu"--!>
<menu>
<item
android:id="@+id/create_new"
android:title="@string/create_new"/>
<item
android:id="@+id/open"
android:title="@string/open"/>
</menu>
</item>
</menu>
Aktivitnizde menu kullanmak için menu kaynağını, MenuInflater.inflate() metodu ile ( XML kaynağını, programlanabilir nesneye dönüştürmek) inflate etmeniz gerekir. Bir sonraki bölümde, her hangi bir menü türü için bu menüleri nasıl inflate edeceğimizi göreceğiz.
Soru ve Görüşleriniz için : JavaVeAndroid