安卓:java.lang.ClassCastException:android.widget.imageView不能转换为android.widget.textView转换为、ClassCastExc

2023-09-06 00:10:44 作者:人潮拥挤我踹死你

我不解决这个问题,在我的列表视图模板:我有错误,因为在我的文章标题,但我不会投的ImageView到TextView中。这是我的code:

I can't fix this problem on my listview template: i have the error as in the title of my post, but i won't cast imageview to textview. Here's my 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>

为Java code的错误是在我的文件,我在那里分配TextView的id来TextView的MQ的58行:

The error for the java code is on line 58 of my file, where i assign the TextView id to 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);

这里是logcat的:

And here is the logcat:

06-25 16:08:32.497:D /调试(14642):prendo TextView的MQ   06-25 16:08:32.497:D / AndroidRuntime(14642):关闭虚拟机   06-25 16:08:32.497:W / dalvikvm(14642):主题ID = 1:螺纹退出与未捕获的异常(组= 0x40a561f8)   06-25 16:08:32.497:E / AndroidRuntime(14642):致命异常:主要   06-25 16:08:32.497:E / AndroidRuntime(14642):java.lang.ClassCastException:android.widget.ImageView不能转换为android.widget.TextView   06-25 16:08:32.497:E / AndroidRuntime(14642):在com.prova.listview.LazyAdapter.getView(LazyAdapter.java:58)

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)

有谁知道我可以解决这个问题?

Does anyone know how i can fix this problem?

推荐答案

Eclipse中往往弄乱你的资源飘飞。 这导致了一些奇怪的行为,如字符串和图像被交换在你的应用程序,而更常见的ClassCastException异常(S),当Eclipse开关在你的浏览IDS其中发生。

Eclipse tends to mess up your resources every now and then. This leads to some odd behavior such as strings and images being swapped all over your app, and more commonly classCastException(s), which happen when Eclipse switches your Views' ids around.

几个解决方案这一问题:

A few solutions to that problem:

清理项目。

修改XML布局文件和保存。

Modify an xml layout file and save.

删除你的R档。 (别担心,它会自动再次生成)。

Delete your R file. (Don't worry it will be automatically generated again).

基本上任何使你的项目重建和重新生成R档。

Basically anything that makes your project rebuild and re-generate the R file.