2013-02-23 53 views
15

मैं गतिविधि से टुकड़े से बात करने की कोशिश कर रहा हूं, लेकिन मुझे यकीन नहीं है कि टुकड़ा दिखाई दे रहा है या नहीं। अगर टुकड़ा मौजूद नहीं है, तो मैं कास्टिंग के कारण अपवाद फेंकने के बाद भी शून्य जांच नहीं कर सकता।कैसे जांचें कि टुकड़ा मौजूद है या नहीं?

मैं कैसे जांचूं कि टुकड़ा मौजूद है या नहीं?

PlayerFragment = (PlayerFragment) mManager.findFragmentById(R.id.bottom_container); 
playerFragment.onNotificationListener.updateUI(); 
+0

क्या आप शून्य जांच नहीं कर सकते हैं और केवल उसके बाद कास्टिंग कर सकते हैं? –

+0

मैंने कोशिश की। ऑब्जेक्ट कास्टिंग करने के बाद आवश्यक तत्व नहीं होते हैं। –

+0

क्या आपने अपनी गतिविधि की एक्सएमएल फ़ाइल – twocity

उत्तर

26

इसे पहले नहीं डालें।

Fragment f = mManager.findFragmentById(R.id.bottom_container); 
if(f != null && f instanceof PlayerFragment) { 
    PlayerFragment playerFragment = (PlayerFragment) f; 
    playerFragment.onNotificationListener.updateUI(); 
} 

यदि यह आपके द्वारा प्राप्त अपवाद के साथ स्टैकट्रैक पोस्ट नहीं करता है।

+0

में इस फ्रेजेंट को जोड़ा है, मेरे लिए पूरी तरह से काम किया .. धन्यवाद .. !! – OAEI

10

एक संदर्भ में null कास्टिंग एक आदिम को अपवाद नहीं फेंक देगा, यह होगा।

उपयोग findFragmentById() या findFragmentByTag() एक संदर्भ पाने और उसके अशक्त अगर जाँच, अगर नहीं, जांच करने के लिए संदर्भ के isAdded() या isVisible()

PlayerFragment p = (PlayerFragment) mManager.findFragmentById(R.id.bottom_container); 
if(p != null && p.isAdded()){ 
    p.onNotificationListener.updateUI(); 
} 
+0

'कास्टिंग नल' के बारे में अच्छा बिंदु –

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

  • कोई संबंधित समस्या नहीं^_^