22

का उपयोग कर आईसीएस में विकल्प मेनू नहीं दिख रहा है I एंड्रॉइड-समर्थन-v4.jar लाइब्रेरी का उपयोग करने वाली परियोजना में आईसीएस में एक टुकड़े में दिखाने के लिए विकल्प मेनू नहीं मिल सकता है। मैं गैलेक्सी नेक्सस हैंडसेट पर परीक्षण कर रहा हूं।अनुकूलता लाइब्रेरी

हम एक्शन बार का उपयोग नहीं कर रहे हैं, और ऐप को 2.2+ संगत होने की आवश्यकता है। हम आईसीएस में गतिविधि में कोई विकल्प मेनू नहीं देख रहे हैं (FragmentActivity क्रिएटऑप्शनमेनू पर समर्थन नहीं करता है)

मैं एंड्रॉइड के पिछले संस्करण में काम कर रहे मेनू प्राप्त कर सकता हूं - मेरे पास विकल्प मेनू को सक्षम करने के लिए सभी सही ढांचे हैं (जैसा कि नीचे) लेकिन आईसीएस में कुछ भी नहीं दिखाता है। कोड के माध्यम से कदम उठाने पर जबक्रेटऑप्शनमेनू को कॉल नहीं किया जाता है। क्या कोई फिक्स सुझा सकता है?

import android.os.Bundle; 
import android.support.v4.app.Fragment; 
import android.view.Menu; 
import android.view.MenuInflater; 
import android.view.MenuItem; 
import android.view.View; 
import android.view.ViewGroup; 

public class SuperFragment extends Fragment { 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     setHasOptionsMenu(true); 
     super.onCreate(savedInstanceState); 
    } 

    @Override 
    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { 
     inflater.inflate(R.menu.display_options_actions, menu); 
     super.onCreateOptionsMenu(menu, inflater); 
    } 

    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     switch(item.getItemId()) { 
      case R.id.menu_sign_in: 
       break; 
      case R.id.menu_sign_out: 
       break; 
     } 
     return true; 
    } 
    // ... 
} 

लक्ष्य ओएस मैनिफ़ेस्ट फ़ाइल में संस्करण:

<uses-sdk 
    android:minSdkVersion="8" 
    android:targetSdkVersion="14"/> 
+0

यहां अपनी आयात सूची देखना उपयोगी होगा; क्या आप ढांचे से समर्थन लाइब्रेरी टुकड़े या android.app.Fragment का उपयोग कर रहे हैं? क्या आप गतिविधि से कोई अन्य मेनू आइटम देख रहे हैं? क्या आपकी गतिविधि एक्शन बार का उपयोग कर रही है? आपके मैनिफेस्ट में आपका लक्ष्य एसडीकेवर्सन क्या है? – adamp

+0

आपकी टिप्पणी के लिए धन्यवाद, मैंने अपने प्रश्न – Martyn

उत्तर

32

प्रकट से निकाला जा रहा है android:targetSdkVersion="14" विकल्प मेनू बटन को फिर से सक्षम बनाता है।

ऐसा इसलिए है क्योंकि मेरे पास मैनिफेस्ट में निर्दिष्ट @android:style/Theme.Black.NoTitleBar का विषय था - एंड्रॉइड के साथ: 14 के targetSdkVersion, बटन बार में विकल्प मेनू बटन के विपरीत विकल्प मेनू मेनू में विकल्प मेनू डाला जा रहा है स्क्रीन के नीचे और विषय गतिविधि शीर्षक, और एक्शन बार को हटा रहा है।

The action bar can be removed, हालांकि मुझे यकीन है कि के रूप में मैं अभी तक कर रहा हूँ इतना है कि यह संस्करण 2.2 भर में संगत है यह काम कर रहा करने के लिए करता है, तो इस समस्या को ठीक कर देंगे नहीं कर रहा हूँ - 4.

+4

पर कुछ विवरण जोड़े हैं कुंजी कुंजी 14 नहीं है, लेकिन इसे अभी भी maxSDK के रूप में शामिल करने के लिए है। इस तरह आईसीएस पुराने मेनू को आगे संगत बनाने की कोशिश करता है और एक्शनबार –

+4

की अपेक्षा नहीं करता वास्तव में कुंजी यह है कि लक्ष्य 11 से कम है। हमने इसे आज पाया। जबरदस्त सर दर्द! हमने सोचा कि एक्शनबार थीम का उपयोग न करने से संगतता मेनू सक्षम होगा, जाहिर है नहीं! –

+0

क्या दर्द है! यह मुझे अभी मेनू के साथ जा रहा है। धन्यवाद! इससे डिफ़ॉल्ट लक्ष्य 1 हो जाता है। इससे आपके असंगत विजेट्स के साथ समस्या हो सकती है जो आपने अपने ऐप में उपयोग की हो। – Ramp

2

एंड्रॉयड CDD, के लिए कटऑफ के अनुसार विकल्प मेनू नहीं दिखाए जाने का नया व्यवहार targetSdkVersion> 10. है। आपके विकल्प या तो अपने ऐप को विरासत मोड में targetSdkVersion < = 10 के साथ चलाने के लिए हैं या अपने ऐप को नए दिशानिर्देशों में अनुकूलित करें (उदाहरण के लिए अपने ऐप में मेनू बटन जोड़ें या कार्रवाई बार)। ध्यान दें कि targetSdkVersion को बढ़ाने के लिए आपको लक्ष्य निर्माण संस्करण (ग्रहण में प्रोजेक्ट गुण) को बढ़ाने की आवश्यकता नहीं है।

11

बस एंड्रॉइड को बदलें: "14" से "10" (11 से कम) तक targetSdkVersion, और यह समस्या हल हो जाएगी।

<uses-sdk android:minSdkVersion="3" 
     android:targetSdkVersion="10" /> 
संबंधित मुद्दे