2013-07-31 12 views
13

मैं समर्थन वी 7 लाइब्रेरी के साथ पॉपअपमेनू को लागू करने की कोशिश कर रहा हूं। सब ठीक संकलित लेकिन जब मैं फोन करने के लिए प्रयास करें: फोन परएंड्रॉइड वी 7 समर्थन लाइब्रेरी पॉपअप मेनू

PopupMenu popup = new PopupMenu(this, v); 
    popup.getMenu().add(Menu.NONE,MENU_SHARE_A,1,R.string.A); 
    popup.getMenu().add(Menu.NONE,MENU_SHARE_B,2,R.string.B); 
    popup.show(); 

एक त्रुटि होती है:

07-31 17: 23: 53.365: ई/AndroidRuntime (14,128): java.lang। रनटाइम अपवाद: बाइनरी एक्सएमएल फाइल लाइन # 17: आपको लेआउट_हेइट विशेषता की आपूर्ति करनी होगी।

कौन सा संदर्भित करता है मैं इस तत्व के साथ "abc_popup_menu_item_layout.xml" करने के लिए लगता है:

<android.support.v7.internal.view.menu.ListMenuItemView 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="fill_parent" 
     android:layout_height="?attr/dropdownListPreferredItemHeight" 
     android:minWidth="196dip" 
     android:paddingRight="16dip"> 

यह एक बग है है या मैंने कुछ गलत करते हैं?

उत्तर

14

यदि आप एक उपयुक्त विषय अपने मेनिफ़ेस्ट फ़ाइल में निर्दिष्ट है जांच करना चाह सकते:

<application ... android:theme="@style/Theme.AppCompat"> 
+1

मेरे लिए यह विषय था। मैं एक यूनिट परीक्षण में समस्याएं मार रहा हूं जो मेनू खोलने का प्रयास करता है। किसी भी तरह से विषय परीक्षण के दौरान सेट नहीं किया जा रहा था और मुझे इसे context.setTheme (...) का उपयोग करके मैन्युअल रूप से सेट करना पड़ा; –

0

आपका लेआउट फ़ाइल "abc_popup_menu_item_layout.xml" पहले से ही एक ऊंचाई परिभाषित पता चलता है।

या तो "? Attr/dropdownListPreferredItemHeight" एक अलग थीम या लाइब्रेरी (जैसे एक्शनबैरशेलॉक) से कुछ है, या त्रुटि एक अलग लेआउट फ़ाइल से आ रही है।

इसके अलावा, अगर आप "60dp" जैसी कुछ चीज़ों के लिए "attr/dropdownListPreferredItemHeight" को स्वैप करते हैं तो त्रुटि दूर हो जाती है?

18
PopupMenu popup = new PopupMenu(this, v); 

"यह" क्या संदर्भित करता है? पहला पैरामीटर गतिविधि जैसे संदर्भ होना चाहिए, एप्लिकेशन कॉन्टेक्स्ट नहीं !!

+1

बिल्कुल वही जो मैं खोज रहा था। यह संदर्भ है कि मैच करना है! – alopix

+0

यह उत्तर – Aiapaec

+0

धन्यवाद है! यह मेरी समस्या हल करता है! – cn123h

0

@ शैली/थीम। AppCompat.Light ने मेरे लिए समस्या को दोबारा हल किया। @ शैली/थीम। AppCompat एक अंधेरा विषय है, यह मेरे applicatoin फिट नहीं है।

1

अगर वहाँ एक और शैली है कि Manifest.xml में प्रत्येक गतिविधियों के भीतर लागू किया जाता है यह भी जांच अपने Manifest.xml

android:theme="@style/Theme.AppCompat" 
0

अंदर अपनी गतिविधि को यह पंक्ति जोड़ें। यह एप्लिकेशन टैग में Theme.AppCompat को ओवरराइड करेगा।

संबंधित मुद्दे