Menü Oluşturma :MobileCoder I MobileCoder.NET I Mobil Programlama I Android Programlama I Mobil Geliştiricilerin Buluşma Noktası I www.MobileCoder.Net

Menü Oluşturma

02.04.2015 tarihinde Android Programlama kategorisine eklenmiş, 145 views Kişi Okumuş ve 0 Yorum Yapılmış.

1.Options Menu Oluşturma

İ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/ayarlar”

        android:title=”Ayarlar” />

    <item android:id=”@+id/muzikcalar”

        android:title=”Müzik Çalar” />

    <item android:id=”@+id/youtube”

        android:title=”Youtube” />

</menu>

 

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. İd parametresi ile nesnenin kimliğini belirliyoruz.  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 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ındamenu.xml diye kaydetmiştik.

Yapmış olduğumuz uygulamanın ekran görüntüsü  aşağıdaki gibidir.

 2.Floating Context Menu Oluşturma

  1. Context menu kullanılacak view registerForContextMenu() metoduyla kaydedilir. Aktivitede ListView ya da GridView kullanılıyorsa ve context menu’nun tüm item’larda aktif olması isteniyorsa tüm item’lar, metoda ListView ya da GridView gönderilerek kaydedilir.
  2. Activity ya da Fragment’da onCreateContextMenu() metodu implement edilir. Kayıtlı bir item’a uzun tıklandığında sistem onCreateContextMenu() metodunu çağırır. Burası genelde bir menu resource inflate edilerek menü item’larının tanımlandığı yerdir.

@Override

public void onCreateContextMenu(ContextMenu menu, View v,

                                ContextMenuInfo menuInfo) {

    super.onCreateContextMenu(menu, v, menuInfo);

    MenuInflater inflater = getMenuInflater();

    inflater.inflate(R.menu.context_menu, menu);

}

Context Menü ‘ nün Android uygulamalarında nasıl kullanıldığını bir örnek üzerinde inceleyelim.

Örnek için hazırladığımız uygulama için oluşturulan arayüz:

<?xml version=”1.0″ encoding=”utf-8″?>

<LinearLayout xmlns:android=”http://schemas.android.com/apk/res/android”

    android:layout_width=”fill_parent”

    android:layout_height=”fill_parent”

    android:orientation=”vertical” >

    <ListView

        android:id=”@+id/list”

        android:layout_width=”match_parent”

        android:layout_height=”wrap_content” >

    </ListView>

</LinearLayout>

 

Listview içerisinde yer alacak elemanlar:

<?xml version=”1.0″ encoding=”utf-8″?>

<resources>

    <string-array name=”Gazeteler”>

        <item>Hürriyet</item>

        <item>Milliyet</item>

        <item>Vatan</item>

        <item>Sözcü</item>

        <item>Radikal</item>

        <item>Cumhuriyet</item>

    </string-array>

</resources>

Context Menu içerisinde yer alacak ögeler:

<menu xmlns:android=”http://schemas.android.com/apk/res/android” >

    <item

        android:id=”@+id/itemDuzenle”

        android:title=”@string/menuDuzenle”>

    </item>

    <item

        android:id=”@+id/itemFavori”

        android:title=”@string/menuFavori”>

    </item>

    <item

        android:id=”@+id/itemSil”

        android:title=”@string/menuSil”>

    </item>

    <item

        android:id=”@+id/itemGoruntule”

        android:title=”@string/menuGoruntule”>

        <it>

        </it>

    </item>

</menu>

 

<string name=”menuDuzenle”> Düzenle</string>

<string name=”menuFavori”>Favorilere Ekle</string>

<string name=”menuSil”>Sil</string>

<string name=”menuGoruntule”>Görüntüle</string>

 

registerForContextMenu() metodu çağırılır ve parametre olarak listview e ait referans değerini atanır . Bu sayede context menü görüntülenmeye hazır hale gelir.

registerForContextMenu(mListView); 

 

@Override

public void onCreateContextMenu(ContextMenu menu, View v,

ContextMenuInfo menuInfo) {

// TODO Auto-generated method stub

super.onCreateContextMenu(menu, v, menuInfo);

MenuInflater inflater = getMenuInflater();

inflater.inflate(R.menu.main, menu);

}

 

Context Menü elemanlarına tıklandığında yapılması gereken işlemler için listener metodu hazırlanır.

@Override

public boolean onContextItemSelected(MenuItem item) {

// TODO Auto-generated method stub

AdapterContextMenuInfo info = (AdapterContextMenuInfo) item

.getMenuInfo();

String[] gazeteler = getResources().getStringArray(R.array.Gazeteler);

 

switch (item.getItemId()) {

case R.id.itemDuzenle:

Toast.makeText(

getApplicationContext(),

gazeteler[(int) info.id] + ” gazetesi icin “

+ getResources().getString(R.string.menuDuzenle)

+ ” menüsü kullanılıyor”, Toast.LENGTH_LONG).show();

return true;

 

case R.id.itemFavori:

Toast.makeText(

getApplicationContext(),

gazeteler[(int) info.id] + ” gazetesi icin “

+ getResources().getString(R.string.menuFavori)

+ ” menüsü kullanılıyor”, Toast.LENGTH_LONG).show();

return true;

 

case R.id.itemSil:

Toast.makeText(

getApplicationContext(),

gazeteler[(int) info.id] + ” gazetesi icin “

+ getResources().getString(R.string.menuSil)

+ ” menüsü kullanılıyor”, Toast.LENGTH_LONG).show();

return true;

 

case R.id.itemGoruntule:

Toast.makeText(

getApplicationContext(),

gazeteler[(int) info.id] + ” gazetesi icin “

+ getResources().getString(R.string.menuGoruntule)

+ ” menüsü kullanılıyor”, Toast.LENGTH_LONG).show();

return true;

}

return true;

}

 

Yapmış olduğumuz uygulamanın ekran görüntüsü aşağıdaki gibidir.

context menü1context menü2

 

Serkan YAMAN

 

Kaynaklar

http://www.androidevreni.com/android-programlama-menu-olusturma/

http://www.akilliyazilim.org/androiddersleri/android-dersleri-22context-menu-kullanimi.html

http://developer.android.com/reference/android/view/Menu.html

http://developer.android.com/guide/topics/ui/menus.html

 

 

İlgili Terimler : , ,
Yazar Hakkında

Yazar : Kadriye Kundakci

Yazar Hakkında :

Yazarın Tüm Yazıları İçin Tıklayınız

Yorumlar

Sitemizde En Çok Okunan İçerikler

ANDROİD TELEFONLARA ROOT ATMA
ANDROİD TELEFONLARA ROOT ATMARoot Ne demek ? Bir android cihazı root etmek telefonun
fragment
ANDROİD FRAGMENT YAPISI VE KULLANIMIFragmentler Activity içerisinde yer alan kullanıcı ara yüzleridir. Fragment
Asp.NET’de web servis hazırlama ve Android de kullanimi  Web Servis Nedir ? Web üzerinden HTTP protokolü ile hizmet
ANDROİD TELEFONLARDA KONFERANS GÖRÜŞME
ANDROİD TELEFONLARDA KONFERANS GÖRÜŞMEANDROİD TELEFONLARDA KONFERANS GÖRÜŞME   Konferans görüşme çok fazla bilinmeyen androidin

Sitemizde En Çok Yorumlanan İçerikler

Rating Bar Kullanımı
Rating Bar KullanımıAndroid’de yıldız şeklinde derecelendirme çubuğu olarak kullanılır. Kullanıcı sürükleme
Android Wear Emülatör Kurulumu
Android Wear Emülatör Kurulumu   Android studio da geliştireceğimiz uygulamaların kontrolunü yapmak için emülatör
Resim Galerisi Oluşturma
Resim Galerisi OluşturmaAndroid Programlama – Resim Galerisi Oluşturma Bu yazıda, bir galeri
SQLite Database Browser Kullanımı
SQLite Database Browser KullanımıSQLite Database Browser Kullanımı Merhaba arkadaşlar, Android uygulamaları geliştirirken uygulama üzerindeki

Son Yapılan Yorumlar

  • Kategoriler

  • Son Yazılar

  • Takvim

    Ekim 2017
    P S Ç P C C P
    « Kas    
     1
    2345678
    9101112131415
    16171819202122
    23242526272829
    3031  
  • Etiketler

  • Son Yorumlar

    • Arşivler

    • Meta