簡體   English   中英

Android: java.lang.ClassCastException: android.widget.imageView 無法轉換為 android.widget.textView

[英]Android: java.lang.ClassCastException: android.widget.imageView cannot be cast to android.widget.textView

我無法在我的 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/調試 (14642): Prendo Textview MQ
06-25 16:08:32.497: D/AndroidRuntime (14642): 關閉虛擬機
06-25 16:08:32.497: W/dalvikvm(14642): threadid=1: 線程以未捕獲的異常退出 (group=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)

有誰知道我該如何解決這個問題?

Eclipse 往往會時不時地弄亂您的資源。 這會導致一些奇怪的行為,例如在整個應用程序中交換字符串和圖像,以及更常見的 classCastException(s),當 Eclipse 切換視圖的 id 時會發生這種情況。

該問題的一些解決方案:

清理你的項目。

修改一個xml布局文件並保存。

刪除您的 R 文件。 (不用擔心它會再次自動生成)。

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

只需清理您的項目,一切都會好起來的。

最初,我收到錯誤:

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

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

作為修復,我將TextViewid重命名為

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

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

有時會出現此問題,因為我們創建了 ImageView But Cast with 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,因此也面臨這個問題。

適用於Visual Studio Xamarin.Android 開發

正如許多人提到的那樣,清理項目在 Visual Studio 上對我有用。對於我的 Xamarin.Forms 應用程序,它發生在使用新庫引用引入更改之后。

清理你的項目。

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

清理你的項目...我也遇到過類似的問題..清理項目后一切都會好起來的..祝你好運

也許您的 .xml 文件中有一個圖像視圖和一個動態生成的按鈕,並在您的 java 代碼中給出了一個 id,這兩個隨機獲得相同的 id,因此您會收到此錯誤。 嘗試更改您在代碼中提供的 ID,這樣就可以了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM