2012-06-25 23 views
57

No puedo solucionar este problema en mi plantilla listview: tengo el error como en el título de mi publicación, pero No voy a lanzar imageview a textview. Aquí está mi código:Android: java.lang.ClassCastException: android.widget.imageView no se puede convertir a android.widget.textView

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

El error para el código de Java está en la línea 58 de mi archivo, donde i asignar la identificación de Vista de Texto a 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); 

Y aquí está el Logcat:

06-25 16:08:32.497: D/Debug(14642): Prendo Textview MQ
06-25 16:08:32.497: D/AndroidRuntime(14642): Shutting down VM
06-25 16:08:32.497: W/dalvikvm(14642): threadid=1: thread exiting with uncaught exception (group=0x40a561f8)
06-25 16:08:32.497: E/AndroidRuntime(14642): FATAL EXCEPTION: main
06-25 16:08:32.497: E/AndroidRuntime(14642): java.lang.ClassCastException: android.widget.ImageView cannot be cast to android.widget.TextView
06-25 16:08:32.497: E/AndroidRuntime(14642): at com.prova.listview.LazyAdapter.getView(LazyAdapter.java:58)

¿Alguien sabe cómo puedo solucionar este problema?

+7

parece correcta. Solo intenta limpiar tu proyecto. – Praveenkumar

+0

puede publicar el catlog? Una limpieza puede ser lo que necesita como @SpK recomienda – MikeIsrael

+0

06-25 16: 08: 32.497: D/Debug (14642): Prendo Textview MQ 06-25 16: 08: 32.497: D/AndroidRuntime (14642): Apagado VM 06-25 16:08:32.497: W/dalvikvm (14642): hilo = 1: hilo saliendo con excepción no detectada (grupo = 0x40a561f8) 06-25 16: 08: 32.497: E/AndroidRuntime (14642): EXCEPCIÓN FATAL: principal 06-25 16: 08: 32.497: E/AndroidRuntime (14642): java.lang.ClassCastException: android.widget.ImageView no se puede convertir en android.widget.TextView 06-25 16: 08: 32.497: E/AndroidRuntime (14642): \t en com.prova.listview.LazyAdapter.getView (LazyAdapter.java:58) – Release

Respuesta

179

Eclipse tiende a arruinar sus recursos de vez en cuando. Esto lleva a comportamientos extraños, como cadenas e imágenes que se intercambian en toda la aplicación, y más comúnmente classCastException (s), que ocurren cuando Eclipse cambia los ID de sus vistas.

Algunas soluciones a este problema:

Limpiar su proyecto.

Modifique un archivo de diseño xml y guárdelo.

Borre su archivo R. (No te preocupes, se generará automáticamente de nuevo).

Básicamente cualquier cosa que haga que su proyecto vuelva a generar y vuelva a generar el archivo R.

+4

eliminé mi archivo R. Ahora todo funciona bien. Problema resuelto. ¡Muchas gracias! – Release

+3

Una situación clásica cuando Project> Clean llega al rescate ... –

+0

Gracias por esto. Estuve peleando toda la mañana contra este problema. (+1 para usted) – Luixv

3

Simplemente limpie su proyecto y todo estará bien.

+3

no me ayudó, tuve que cambiar la identificación de la vista y volver a compilar – MartinC

1

Inicialmente, estaba consiguiendo error:

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

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

Como una solución, que cambió el nombre del id para TextView como

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

Incluso limpiar y otras técnicas di No funcionó, pero finalmente cambiarle el nombre a la identificación funcionaba como un hechizo.

1

Algunas veces este problema muestra porque hemos creado ImageView Pero moldeada con el botón de imagen como como esto

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

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

hemos declarado Imageview sino echemos a ImageButton, por esta razón también tiene frente a este problema.

0

sólo limpia su proyecto ... También me haya ido a través de problema similar .. tras proyecto todo limpio será fine..best suerte

Cuestiones relacionadas