2014-10-26 15 views
6

के साथ काम नहीं कर रहा है मैं टेम्पलेट द्वारा बनाई गई नेविगेशन ड्रावर का उपयोग कर रहा हूं (जब कोई नई प्रोजेक्ट शुरू होता है)। मैं सामग्री डिजाइन संगतता प्राप्त करने की कोशिश कर रहा हूं इसलिए मैं AppCompat v7 का उपयोग कर रहा हूं। मैं पीछा किया these instructions मेरी ActionBar के रूप में एक टूलबार स्थापित करने के लिए (यानी मेरे उपकरण पट्टी पर setSupportActionBar प्रयोग करके) और मैं कम से (onCreateView अंदर)नेविगेशन ड्रावरफ्रैगमेंट AppCompat टूलबार

mDrawerListView.setAdapter(new ArrayAdapter<String>(
      getActionBar().getThemedContext(), 
      android.R.layout.simple_list_item_activated_1, 
      android.R.id.text1, ... 
अब

मैं मुद्दों पर शक मेरी NavigationDrawerFragment में एक एनपीई मिल getActionBar साथ है() मैं NavigationDrawerFragment पर सेटअप() कॉल करने से पहले गतिविधि के onCreate में setSupportActionBar (उपकरण पट्टी) कहा जाता है ...

मैं -

private ActionBar getActionBar() { 
    return ((ActionBarActivity) getActivity()).getSupportActionBar(); 
} 

लेकिन मुझे पता नहीं क्यों है: टुकड़ा अंदर विधि किसी के पास कोई सुराग है कि यह क्यों हो रहा है कृपया मदद करें!

उत्तर

6

ऐसा लगता है समस्या की तरह है कि टुकड़ा के onCreateView गतिविधि के onCreate से पहले बुलाया गया था और इस तरह वहाँ कोई ActionBar सेट था साथ getActionBar().getThemedContext() बदलें। मैंने बस समस्याग्रस्त कोड को विखंडन पर सक्रियता में स्थानांतरित कर दिया है और यह एक आकर्षण की तरह काम करता है।

+0

क्या आप विस्तृत कर सकते हैं? – bernlim

+0

@bernlim ज़रूर। समस्या यह थी कि जब मेरी गतिविधि बनाई जा रही थी तो टुकड़े की ऑनक्रेट व्यू विधि को गतिविधि के पहले क्रिएट से पहले बुलाया गया था। एनपीई टुकड़े के क्रिएटिव्यू में उभरता है क्योंकि मैं एक्शन बार प्राप्त करने का प्रयास करता हूं जो कि उस बिंदु पर शून्य है क्योंकि गतिविधि की ऑन्रेट अभी तक नहीं बुलाई गई है और इसलिए एक्शनबार को अभी तक प्रारंभ/सेट/बनाया नहीं गया है। क्या यह समझ में आता है? – Djordje

4

सिर्फ getActivity()

+1

लेकिन getActivity() getActionBar() प्राप्त करने के बराबर नहीं है। GetThemedContext() हालांकि यह संदर्भ दे सकता है। – 7383

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