2012-06-25 47 views
57

我无法解决这个问题在我的列表视图模板上:我有错误,因为在我的帖子的标题,但我不会投影imageview到textview。这里是我的代码:Android:java.lang.ClassCastException:android.widget.imageView不能转换为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> 

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

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/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)

有谁知道我该如何解决这个问题?

+7

似乎是正确的。试着清理你的项目。 – Praveenkumar

+0

你可以发布catlog吗? @SpK推荐 – MikeIsrael

+0

06-25 16:08:32.497 D/Debug(14642):Prendo Textview MQ 06-25 16:08:32.497:D/AndroidRuntime(14642):关闭VM 06-25 16:08:32。497:W/dalvikvm(14642):threadid = 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):\t com.prova.listview.LazyAdapter.getView(LazyAdapter.java:58) – Release

回答

179

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

该问题的几种解决方案:

清理您的项目。

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

删除您的R文件。 (别担心它会再次自动生成)。

基本上,任何使您的项目重建并重新生成R文件。

+4

我删除了我的R文件。现在一切正常。问题解决了。非常感谢你! – Release

+3

一个典型的情况,当项目>清洁来救援... –

+0

感谢您的这一点。我整个上午都在为这个问题而战。 (为你+1) – Luixv

3

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

+3

它没有帮助我,我不得不改变视图的id并重新编译 – MartinC

1

起初,我得到错误:

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

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

作为一个解决方法,我改名为idTextView作为

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

即使清理其他技术迪不工作,但最终重命名的ID像魅力工作。

1

有些时候,这个问题说明,因为我们已经创建的ImageView但随着图像按钮铸成这样

<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,这个原因也有面对这个问题

0

只是清理项目...... 我也通过类似的问题了.. 清洁工程后一切将fine..best运气

相关问题