2010-07-23 11 views
8

ottengo questa eccezione quando provo a gonfiareClasse generata eccezione durante il gonfiaggio di un layout relativo personalizzato?

07-22 19: 15: 39,903: ERRORE/AndroidRuntime (3810): causato da: java.lang.ClassCastException: android.widget.RelativeLayout

I avere una classe base:

public class UIBase extends RelativeLayout {} 

e una classe più specifica:

public class Countdown extends UIBase {} 

poi cerco di gonfiare e IT eccezioni:

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

Ecco il file XML:

<?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> 

Qualcuno sa che cosa sto facendo male?

+1

Che aspetto ha il tuo XML? –

+0

Senza vedere il file di layout e forse più del codice, è difficile consigliarvi. Assicurati che il tuo file di layout abbia un widget 'UIBase' o' Countdown', non un 'RelativeLayout'. – CommonsWare

+0

Modificato con XML. – Joren

risposta

15

Come per la documentazione, inflate() restituisce "la vista radice della gerarchia gonfiata.Se è stato fornito root e attachToRoot è true, questo è root, altrimenti è la radice del file XML gonfiato".

Dato che è stato eseguito true, il valore restituito è "parent", che apparentemente non deriva da UIBase.

+2

Era questo. Dovevo passare falso però, non semplicemente tralasciare il vero. Buona cattura, grazie. – Joren

Problemi correlati