60

我无法在我的 listview 模板上解决此问题:我的帖子标题中出现错误,但我不会将 imageview 转换为 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代码的错误在我文件的第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/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: 线程以未捕获的异常退出 (group=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): at com.prova.listview.LazyAdapter.getView (LazyAdapter.java:58)

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

4

7 回答 7

180

Eclipse 往往会时不时地弄乱您的资源。这会导致一些奇怪的行为,例如在整个应用程序中交换字符串和图像,以及更常见的 classCastException(s),当 Eclipse 切换视图的 id 时会发生这种情况。

该问题的一些解决方案:

清理你的项目。

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

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

基本上任何使您的项目重建和重新生成 R 文件的东西。

于 2012-06-25T14:31:02.377 回答
4

只需清理您的项目,一切都会好起来的。

于 2013-03-22T15:16:41.197 回答
1

最初,我收到错误:

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

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

作为修复,我将for重命名idTextView

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

甚至清理和其他技术都不起作用,但最终重命名 id 就像一个魅力。

于 2013-10-02T14:15:43.093 回答
1

有时会出现此问题,因为我们创建了 ImageView 但使用 Image 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,因此也面临这个问题。

于 2014-06-03T04:35:47.403 回答
1

用于Visual Studio Xamarin.Android 开发

就像许多人提到的那样,清理项目在 Visual Studio 上为我做了诀窍。对于我的 Xamarin.Forms 应用程序,它发生在使用新的库引用进行更改之后。

清理你的项目。

基本上任何使您的项目重建和重新生成 Rosource.Designer.cs 文件的东西。(来自@Benito Bertoli)

于 2018-08-02T19:10:04.167 回答
0

只是清理你的项目......我也遇到了类似的问题......清理项目后一切都会好起来的......祝你好运

于 2014-09-22T06:17:25.210 回答
0

也许您的 .xml 文件中有一个图像视图和一个在您的 java 代码中动态生成并给出一个 id 的按钮,这两个随机获得相同的 id,因此您会收到此错误。尝试更改您在代码中提供的 id 就可以了。

于 2018-06-28T15:11:12.013 回答