2011-09-23 3 views
0

J'ai le textview suivant dans un fichier de mise en page, ceci est le contenu complet du fichier de mise en page:Android TextView erreur coulée: android.widget.LinearLayout ne peut pas être jeté à android.widget.TextView

<?xml version="1.0" encoding="utf-8"?> 
<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/seasonTitle" 
    android:padding="3dip" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:textColor="#FFFFFFFF" 
    android:textSize="14sp" 
    android:textStyle="bold" 
    android:maxHeight="26sp" 
    android:background="#FFCC3333" 
    /> 

Il a été dans mon application pendant un an ou deux sans problèmes. Tout d'un coup, je reçois l'erreur: android.widget.LinearLayout ne peut pas être casté en android.widget.TextView

Je ne peux pas comprendre.

Le fichier de mise en page est gonflé avec le code comme ceci:

TextView seasonTv = (TextView)mInflater.inflate(R.layout.section_title, null); 

Toute idée pourquoi cela se passe?

Merci!

Répondre

0

Il semble que vous transmettez null comme élément racine du groupe de vues. Je suppose que l'inflateur est par défaut votre groupe de vue à une disposition linéaire, lorsque vous n'avez pas du tout un groupe de vue. Je voudrais essayer de modifier votre appel de gonflement, car votre fichier de mise en page semble OK.

source: http://developer.android.com/reference/android/view/LayoutInflater.html

+0

Votre réponse a résolu le problème immédiat, merci !, mais cela me laisse perplexe. Aidez-moi à mieux comprendre cela. Ce code a fonctionné pendant la plus grande partie de l'année. La même ligne de code de 10 lignes au-dessus fonctionnait bien. Pourquoi le comportement changerait-il comme ça? –

+0

Juste une supposition, mais est l'autre mise en page une forme de groupe de vue, ou est-ce une vue de texte aussi bien? Je dirais que si c'est un groupe de vue, la mise en page linéaire par défaut ne blesse rien. En dehors de cela, je ne suis pas vraiment sûr de savoir pourquoi l'appel fonctionne pour une mise en page et pas une autre. – Jlange

+0

merci pour le suivi. Non, c'est un appel au même fichier de mise en page avec une conversion en TextView. Il est 12 lignes plus tôt ... –

0

essayer cette

View season = (View)mInflater.inflate(R.layout.section_title, null); 
TextView seasonTv = (TextView)findViewById(R.id.seasonTitle); 

Vous essayez de gonfler la mise en page et de le jeter à un widget TextView. Vous devez gonfler la disposition et trouver le widget

+0

Voulez-vous dire qu'une vue dans un fichier de disposition doit avoir une vue basée sur ViewGroup/Layout en tant que parent? J'avais compris que toute vue était autorisée dans un fichier de mise en page. –

Questions connexes