2013-09-30 6 views
6

जब मैं एक कस्टम View बनाता हूं, जहां कुछ मामलों में मुझे कास्ट करने की आवश्यकता होती है"java.lang.ClassCastException: com.android.layoutlib.bridge.android.bridgeContext को कैसे ठीक नहीं किया जा सकता है android.app.Activity" अपवाद

java.lang.ClassCastException: com.android.layoutlib.bridge.android.BridgeContext cannot be cast to android.app.Activity 

यह पंक्ति इस त्रुटि फेंक है: Context वर्ग Activity वर्ग के लिए निर्माता के माध्यम से पारित कर दिया, कुछ कार्यों बनाने के लिए एक View बढ़ सीधे अपने कस्टम View वर्ग के भीतर, मैं निम्न त्रुटि हो रही है की तरह है:

View headerView = ((Activity) context).getLayoutInflater().inflate(R.layout.fragment_history_list_header, null); 

ऐसा लगता है कि यह त्रुटि तब होती है जब ग्रहण एक्सएमएल संपादक में दिखाए जाने के दृश्य को बढ़ाने की कोशिश करता है (रनटाइम में नहीं होता है)।

कोई जानता है कि यह कैसे तय करने के लिए?

अग्रिम धन्यवाद।

उत्तर

7

बदलें निम्नलिखित करने के लिए कॉल। क्लास कास्ट अपवाद प्राप्त करने का कारण यह है कि ब्रिजकॉन्टेक्स्ट प्रकार की गतिविधि नहीं है।

View headerView = LayoutInflater.from(context).inflate(R.layout.fragment_history_list_header, null); 
+0

मेरे लिए इसी तरह के मुद्दे। 'अगर ((गतिविधि) getContext()) isTaskRoot()) 'मेरी समस्या का कारण बनने वाली रेखा है, जिसे आपके (भी काफी सहायक) inflater fix द्वारा हल नहीं किया जाता है। अगर मुझे कोई समाधान मिल जाए तो मैं वापस आऊंगा ... –

+0

क्या आपको कोई समाधान मिला? @ विलियम टी। मल्लार्ड धन्यवाद – sipi

+4

क्रमबद्ध करें। एक कोबाशी मारू चीज से अधिक। मैं केवल ग्रहण में एडीटी चित्रमय संपादक में पुल संदर्भ समस्या को देखा, और अनुमान लगाया कस्टम दृश्य के लिए कोड को निष्पादित करने की कोशिश कर रहा है कि त्रुटि संपादक से था, और न असमर्थ करने वाली बढ़ समस्या जब मैं भागा मैं हो रही थी एप्लिकेशन (जो निकला एक साधारण नींद अध्यक्षता टाइपो :(द्वारा)। आदेश अभी भी लेआउट संपादक का उपयोग करने में, मैं 'if (! View.isInEditMode()) {}' किसी भी संदर्भ पर निर्भर कोड के चारों ओर करने के लिए इस्तेमाल। The पूर्वावलोकन सुंदर नहीं है, लेकिन यह मुझे अभी भी अन्य नियंत्रणों को देखने देता है। –

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