2012-01-18 13 views
16

Kendimi ilk gerçek uygulamamı yazmaya başlamak için Android Geliştirme hakkındaki bir kitabı takip ediyorum. Faaliyetlerimden biri için seçenekler menüsü hazırladığım noktaya geldim. Menü açılır, ancak menü öğesinin karşılık gelen simgesi görüntülenmeyi reddeder. İşte menü kodu şöyledir:Android seçenekleri menü simgesi görüntülenmiyor

ReminderListActivity

@Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     super.onCreateOptionsMenu(menu); 
     MenuInflater mi = getMenuInflater(); 
     mi.inflate(R.menu.list_menu, menu); 
     return true; 
    } 

res ben ic_menu_add.png simgesine (32x32px) kopyaladığınız

<?xml version="1.0" encoding="utf-8"?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android" > 
    <item android:id="@+id/menu_insert" 
     android:icon="@drawable/menu_add" 
     android:title="@string/menu_insert" /> 

</menu> 

/menü/list_menu.xml Android SDK alt klasörlerimden res/drawable-mdpi klasörüme ve dosyayı menu_add.png olarak yeniden adlandırdım. Tutulma içindeki klasörü yeniledim, böylece simge belirdi ve görebildiğiniz gibi, düzen dosyamda menü öğesi için simge olarak ayarladım. Projemi emülatörde birkaç kez çalıştırmayı denedim, ancak simge hiç gösterilmiyor. Kayıt için Android 4.0.3 kullanıyorum ..

Herhangi bir fikrin var mı?

+0

Eğer yoğunluktan daha az klasörde simgesini koymak deneyebilir miyim API benim için çalışıyor? Bence senin kodunla ilgisi yok. Eclipse'de bir aksaklık olabilir. – iTurki

+0

Tam olarak yoğunluksuz klasörle ne demek istiyorsunuz? Sadece ldpi, mdpi ve hdpi çizim klasörleri var, değil mi? Simgeyi tüm klasörlere koymayı denedim, ancak bu düzeltmedi. – Jort

+1

Bir klasör ekleyin ve 'drawable' olarak adlandırın, ardından simgeyi üzerine koyun. Çalışmadıysa, her klasördeki simgeyi çoğaltmayı deneyin. Projeyi yenilemeyi ve test etmeden önce temizlemeyi unutmayın. – iTurki

cevap

28

Android 3.0+ sürümünde, seçenekler menüsü için tercih edilen yaklaşım (eylem çubuğundaki yayılma menüsü) simgeleri göstermeyecektir. android:targetSdkVersion="11" veya daha yüksek bir sürüme sahipseniz, Android 3.0+ sürümündeki simgeler hiçbir zaman gösterilmez. Araç çubuğu düğmesi olarak bir seçenekler menü öğesini tanıtırsanız ve Android 1.x/2.x aygıtlarında simgeler görünürse, simgeler gösterilir.

+0

Cevabınız için teşekkürler, Android'in ayarları ile ilgili bir şey olduğundan şüpheleniyordum. Seçenekler menü öğelerini araç çubuğu düğmelerine çevirebilir miyim veya tüm seçenekler menüsümü araç çubuğuna dönüştürmem gerekir mi? – Jort

+0

@Jort: Öncelikle, simgeler hakkında endişelenmeyi bırakmalısın. Seçenekler menü öğelerini işlem çubuğuna araç çubuğu düğmeleri olarak taşımak için android: showAsAction işlevini kullanabilirsiniz. – CommonsWare

+0

Netleştirdiğiniz için teşekkür ederiz. Atm'ı takip ettiğim kitap, Android 2.2 için uygulamalar yazmaya odaklanmıştır, bu yüzden benim ikonlarımın görünmesini sağlamaya çok yaklaşmıştım. Henüz işlem çubuğunu kullanmadım, ancak şimdi Android'in yeni sürümlerinde kullanıcı arayüzünün nasıl değiştiğini anladım. Yararlı tavsiye için tekrar teşekkürler :) – Jort

0

RelativeLayout ile bir düzen oluşturduğunuz ve kullanıcı menünüzü seçtiğinizde, düzeniniz görüntülenir.

5

Bu mükemmel 23

<menu xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
xmlns:tools="http://schemas.android.com/tools" 
tools:context=".MainActivity"> 
<item 
    android:icon="@drawable/ic_menu" 
    android:orderInCategory="100" 
    android:title="Option Menu" 
    app:showAsAction="always"> 
    <menu> 
     <item 
      android:id="@+id/action_myorder" 
      android:icon="@drawable/ic_order" 
      android:title="My Order" /> 
     <item 
      android:id="@+id/action_myaccount" 
      android:icon="@drawable/ic_account" 
      android:title="My Account" /> 
     <item 
      android:id="@+id/action_share" 
      android:icon="@drawable/ic_share" 
      android:title="Share" /> 
     <item 
      android:id="@+id/action_term_condition" 
      android:icon="@drawable/ic_terms" 
      android:title="Term and Conditions" /> 
     <item 
      android:id="@+id/action_logout" 
      android:icon="@drawable/ic_logout" 
      android:title="Logout" /> 
    </menu> 
</item> 

+0

harika! sadece android kullanımının ne olduğunu bilmek istersiniz: orderInCategory = "100" – Abhijit

+0

kategori için değer 0 ise, taşma menü parçanın üzerine gelip daha sonra o parçanın altında 0 rende. –

İlgili konular