2012-12-05 11 views
7

Ben mentuItem.setShowAsAction ücretsiz yöntemi için arıyorum(), yani menuItem.getShowAsAction() için Yöntemini alın.biri olarak görünmüyor olarak Android Menuıtem showAsAction

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

Ben cihazın yönünü onların eski durumuna menü öğelerini dönebilirsiniz geri manzara dönüşür, bu nedenle zaman MenuItem.SHOW_AS_ACTION_NEVER onları ayarlamadan önce mevcut durumunu kaydetmek gerekir gibi. Petek ICS gibi sekmeleri göstermek için yeni bir satır sağlamaz olarak

Bunu yapmak gerekir. Yani petek içinde sekmelere verilen yeterli alan yoktur.

menuitem öznitelik showAsAction için XML ayarı bulmak için Java veya Android başka evrensel olsun özellikleri yöntem var mı.

sayesinde

+0

bir şey buldun mu başka hangi cevabı söyleniyordu dan Sen, bu yöntemi kullanabilirsiniz

((MenuItemImpl)item).isActionButton() 
Peterdk

+0

Hayır hiçbir şey bulamadı. Ve (O anda Petek cihazda deneyerek olmuştu gibi) petek değil ama aslında ekstra büyük ve dikey modda gibi bazı ekran yapılandırmaları etkiledi. Ancak Honeycomb'da menü öğelerinin durumunu hatırlayamadı ve yeniden inşa edemedi. – pt123

cevap

1

aşağıda sınıf, bu yöntem isActionButton()

android.support.v7.internal.view.menu.MenuItemImpl

sahip olduğunu bulduk

Menuıtem bir arayüz ve bir sınıf olduğuna dikkat edin hangi sözde menuitem nesne dan örnek oluşturuldu.

Eğer android.support.v7 uyumluluk paketini kullanıyorsanız, menü nesnesini MenuItemImpl'a dökmeniz yeterlidir.

Böyle yapılır:

@SuppressLint("RestrictedApi") 
private int getShowAsActionFlag(MenuItem item) { 
    MenuItemImpl itemImpl = ((MenuItemImpl) item); 
    if (itemImpl.requiresActionButton()) return MenuItemImpl.SHOW_AS_ACTION_ALWAYS; 
    else if (itemImpl.requestsActionButton()) return MenuItemImpl.SHOW_AS_ACTION_IF_ROOM; 
    else if (itemImpl.showsTextAsAction()) return MenuItemImpl.SHOW_AS_ACTION_WITH_TEXT; 
    else return MenuItemImpl.SHOW_AS_ACTION_NEVER; 
} 
+0

Ayrıca söz sınıf yöntemler sunar 'requestsActionButton()' 'requiresActionButton()' ve 'showsTextAsAction()' Eğer SHOW_AS_ACTION_IF_ROOM', 'SHOW_AS_ACTION_ALWAYS' veya' SHOW_AS_ACTION_WITH_TEXT' ayarlanır bayrakları 'Hava algılanmasına yardımcı ve don hangi' bit maskesi ile etrafta dolaşmak zorundasın! – Taig

+0

@Taig Biraz bu nasıl yöntemlerle setShowAsAction kullanılan bayrak (ler) değerini elde etmek açıklayabilir misin musunuz()? – f470071

0

? Ben aynı yöntemi arıyorum.
İlgili konular