2010-07-23 10 views
8

मैं जब मैं बढ़ाने के लिएकस्टम रिलेटिव लेआउट को भरते समय क्लास कास्ट अपवाद? 15:

07-22 19 कोशिश इस अपवाद मिल 39.903: त्रुटि/AndroidRuntime (3810): java.lang.ClassCastException: की वजह से android.widget.RelativeLayout

मैं

public class UIBase extends RelativeLayout {} 

और एक अधिक विशिष्ट वर्ग: एक आधार वर्ग है

public class Countdown extends UIBase {} 

तब मैं बढ़ाने के लिए कोशिश करते हैं और यह अपवाद:

UIBase newView = (UIBase) inflater.inflate(layoutId, parent, true); 

यहाँ एक्सएमएल फ़ाइल है:

<?xml version="1.0" encoding="utf-8"?> 
<com.Countdown xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/countdown" 
    android:layout_alignParentTop="true" 
    android:layout_alignParentRight="true" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    > 
<TextView 
    android:id="@+id/countdownText" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_centerInParent="true" 
    android:text="0" /> 
</com.Countdown> 

किसी को भी पता है मैं गलत क्या कर रही हूं?

+1

आपका एक्सएमएल कैसा दिखता है? –

+0

लेआउट फ़ाइल को देखे बिना, और शायद अधिक कोड, आपको सलाह देना मुश्किल है। सुनिश्चित करें कि आपकी लेआउट फ़ाइल में 'UIBase' या 'उलटी गिनती' विजेट है, न कि' RelativeLayout'। – CommonsWare

+0

एक्सएमएल के साथ संपादित। – Joren

उत्तर

15

प्रलेखन के अनुसार, फुलाया() लौटाता है "फुलाया पदानुक्रम का मूल दृश्य। यदि रूट की आपूर्ति की गई थी और संलग्न है तो रूट सही है, यह जड़ है, अन्यथा यह बढ़ी हुई एक्सएमएल फ़ाइल की जड़ है।"

जब से तुम सच में पारित कर दिया, वापसी मान "जनक", जो जाहिरा तौर पर UIBase से प्राप्त नहीं है।

+2

यह था। हालांकि मुझे झूठ बोलना पड़ा, न कि केवल सच छोड़ दें। अच्छा पकड़, धन्यवाद। – Joren

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