Android:java.lang.ClassCastException:android.widget.imageView无法转换为android.widget.textView

我无法解决这个问题,我的列表视图模板:我有我的post的标题错误,但我不会投影到textview的imageview。 这是我的代码:

<?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代码的错误是在我的文件的第58行,在那里我把TextView id分配给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:

06-25 16:08:32.497:D /debugging(14642):Prendo Textview MQ
06-25 16:08:32.497:D / AndroidRuntime(14642):closures虚拟机
06-25 16:08:32.497:W / dalvikvm(14642):threadid = 1:线程退出与未捕获的exception(组= 0x40a561f8)
06-25 16:08:32.497:E / AndroidRuntime(14642):致命的例外:main
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)

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

Eclipse会时不时地弄乱你的资源。 这会导致一些奇怪的行为,例如string和图像在您的应用程序中被交换,更常见的是classCastException(s),当Eclipse切换Views的id时发生。

这个问题的一些解决scheme:

清理你的项目。

修改一个xml布局文件并保存。

删除你的R文件。 (不要担心它会再次自动生成)。

基本上任何使你的项目重build并重新生成R文件。

只要清理你的项目,一切都会好的。

有时候会出现这个问题,因为我们已经像这样创build了ImageView而是使用图像button进行投射

  <ImageView android:id="@+id/iv_thumb" android:layout_width="50dip" android:layout_height="50dip" /> holder.imageView = (ImageButton) convertView.findViewById(R.id.iv_thumb); 

我们已经声明了Imageview但是投射到ImageButton,因此也面临这个问题。

最初,我得到错误:

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

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

作为一个修复,我把TextViewid改名为

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

即使清理和其他技术不起作用,但最终重命名ID工作像一个魅力。

只是清理你的项目…我也经历了类似的问题..清洁工程后,一切都会好的..最好的运气

一个案例 在这个我在textview中定义的imagebutton返回一个classCastexception。 你没有这样做,但我分享这个信息。