web-dev-qa-db-fra.com

Android: exception Java.lang.ClassCast: Android.widget.imageView ne peut pas être converti en Android.widget.textView

Je ne peux pas résoudre ce problème sur mon modèle Listview: j'ai l'erreur comme dans le titre de mon message, mais je ne vais pas convertir imageview en textview. Voici mon code:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:layout_width="match_parent"
Android:layout_height="200dip"
Android:layout_weight="1"
Android:paddingBottom="10dip" >

<TextView
    Android:id="@+id/mq"
    Android:layout_width="wrap_content"
    Android:layout_height="wrap_content"
    Android:layout_alignParentBottom="true"
    Android:layout_alignParentRight="true"
    Android:text="Metri quadri"
    Android:textColor="#33b5e5"
    Android:textSize="14sp"
    Android:textStyle="bold" />

<TextView
    Android:id="@+id/citta"
    Android:layout_width="wrap_content"
    Android:layout_height="wrap_content"
    Android:layout_alignBaseline="@+id/mq"
    Android:layout_alignBottom="@+id/mq"
    Android:layout_centerHorizontal="true"
    Android:text="Citta"
    Android:textColor="#33b5e5"
    Android:textSize="14sp"
    Android:textStyle="bold" />

<TextView
    Android:id="@+id/prezzo"
    Android:layout_width="wrap_content"
    Android:layout_height="wrap_content"
    Android:layout_alignParentBottom="true"
    Android:layout_alignParentLeft="true"
    Android:text="Prezzo"
    Android:textColor="#e1e1e1"
    Android:textSize="14sp"
    Android:textStyle="bold" />

<TextView
    Android:id="@+id/nome"
    Android:layout_width="wrap_content"
    Android:layout_height="wrap_content"
    Android:layout_alignParentLeft="true"
    Android:layout_alignParentTop="true"
    Android:padding="5dip"
    Android:scrollHorizontally="true"
    Android:singleLine="true"
    Android:text="@string/testolungo"
    Android:textColor="#e1e1e1"
    Android:textSize="20sp"
    Android:textStyle="bold" />

<ImageView
    Android:id="@+id/foto"
    Android:layout_width="80dip"
    Android:layout_height="60dip"
    Android:layout_alignParentLeft="true"
    Android:layout_centerVertical="true"
    Android:contentDescription="Release"
    Android:padding="5dip"
    Android:scaleType="centerCrop"
    Android:src="@drawable/stub" />

<TextView
    Android:id="@+id/descsplash"
    Android:layout_width="wrap_content"
    Android:layout_height="wrap_content"
    Android:layout_centerHorizontal="true"
    Android:layout_centerVertical="true"
    Android:text="Small Text"
    Android:textSize="16sp"
    Android:textStyle="italic" />

</RelativeLayout>

L'erreur pour le code Java est à la ligne 58 de mon fichier, où j'attribue l'identifiant TextView à TextView mq:

    View vi=convertView;
    if(convertView==null)
    vi = inflater.inflate(R.layout.listlay, null);
    TextView nome=(TextView)vi.findViewById(R.id.nome);
    TextView mq=(TextView)vi.findViewById(R.id.mq); // here's the error (???)
    TextView citta=(TextView)vi.findViewById(R.id.citta);
    TextView prezzo=(TextView)vi.findViewById(R.id.prezzo);
    ImageView image=(ImageView)vi.findViewById(R.id.foto);
    TextView descrizione = (TextView)vi.findViewById(R.id.descsplash);
    nome.setText(data.get(position).getNome());
    mq.setText(data.get(position).getMetriQuadri());
    citta.setText(data.get(position).getCitta());
    prezzo.setText(data.get(position).getPrezzo());
    descrizione.setText(data.get(position).getDescrizione());
    imageLoader.DisplayImage(data.get(position).getForoUrl(), image);

Et voici le logcat:

06-25 16: 08: 32.497: D/Debug (14642): Prendo Textview MQ
06-25 16: 08: 32.497: D/AndroidRuntime (14642): arrêt de la machine virtuelle
06-25 16: 08: 32.497: W/dalvikvm (14642): ID_fil = 1: thread sortant avec une exception non capturée (groupe = 0x40a561f8)
06-25 16: 08: 32.497: E/AndroidRuntime (14642): EXCEPTION FATALE: principale
06-25 16: 08: 32.497: E/AndroidRuntime (14642): exception Java.lang.ClassCastExast: Android.widget.ImageView ne peut pas être converti en android.widget.TextView
06-25 16: 08: 32.497: E/AndroidRuntime (14642): à l'adresse com.prova.listview.LazyAdapter.getView (LazyAdapter.Java:58)

Est-ce que quelqu'un sait comment je peux résoudre ce problème?

59
Release

Eclipse a tendance à gâcher vos ressources de temps en temps… .. Cela entraîne certains comportements étranges, tels que des chaînes et des images échangées partout dans votre application, et plus généralement des exceptions classCastException (s), qui se produisent lorsque Eclipse modifie l'identifiant de vos vues autour.

Quelques solutions à ce problème:

Nettoyez votre projet.

Modifiez un fichier de mise en page XML et enregistrez.

Supprimez votre fichier R. (Ne vous inquiétez pas, il sera automatiquement généré à nouveau).

Fondamentalement, tout ce qui fait que votre projet reconstruit et régénère le fichier R. 

178
Benito Bertoli

Il suffit de nettoyer votre projet et tout ira bien.

4
Aïssa Ghouti

Parfois, ce problème est dû au fait que nous avons créé ImageView But Cast avec le bouton Image comme suit. 

 <ImageView
        Android:id="@+id/iv_thumb"
        Android:layout_width="50dip"
        Android:layout_height="50dip"
        />

  holder.imageView = (ImageButton) convertView.findViewById(R.id.iv_thumb);

nous avons déclaré Imageview, mais avons converti en ImageButton, pour cette raison, avons également faire face à ce problème. 

1
Rohit

Au début, j'avais une erreur: 

TextView : Android:id="@+id/add_expected_seekbarvalue"

SeekBar : Android:id="@+id/add_expected_seekbar"

En guise de solution, j’ai renommé id pour TextView en

TextView : Android:id="@+id/add_expected_valueseekbar"

Même le nettoyage et d'autres techniques ne fonctionne pas, mais finalement renommer l'ID a fonctionné comme un charme.

1
touchchandra

pour Développement Visual Studio Xamarin.Android

Comme mentionné par de nombreuses personnes, Nettoyage le projet a fonctionné pour moi sous Visual Studio Pour mon application Xamarin.Forms, cela s’est produit après avoir enregistré les modifications avec une nouvelle référence de bibliothèque.

Nettoyez votre projet.

Fondamentalement, tout ce qui fait que votre projet reconstruit et régénère le fichier Rosource.Designer.cs. (Burrowed de Benito Bertoli)

0
Ahmed Alejo

il suffit de nettoyer votre projet ... J'ai également rencontré le même problème

0
Amol Suryawanshi

Peut-être avez-vous une vue d'image dans votre fichier .xml et un bouton qui génère et attribue de manière dynamique un identifiant dans votre code Java et ces deux personnes obtiennent un identifiant identique de manière aléatoire; que vous avez donné dans votre code et tout ira bien.

0
user7401696