60

リストビュー テンプレートでこの問題を修正できません。投稿のタイトルにあるようなエラーがありますが、イメージビューをテキストビューにキャストしません。これが私のコードです:

<?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): Predo 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) で終了するスレッド(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)

この問題を解決する方法を知っている人はいますか?

4

7 に答える 7

180

Eclipse は、ときどきリソースを台無しにする傾向があります。これにより、アプリ全体で文字列や画像が交換されるなどの奇妙な動作が発生し、より一般的には、Eclipse がビューの ID を切り替えるときに発生する classCastException(s) が発生します。

その問題に対するいくつかの解決策:

プロジェクトをクリーンアップします。

xml レイアウト ファイルを変更して保存します。

R ファイルを削除します。(再度自動的に生成されることを心配しないでください)。

基本的に、プロジェクトを再構築して R ファイルを再生成するもの。

于 2012-06-25T14:31:02.377 に答える
1

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 にキャストしたため、この問題にも直面しています。

于 2014-06-03T04:35:47.403 に答える
0

プロジェクトをきれいにするだけです...私も同様の問題を経験しました..きれいなプロジェクトの後、すべてがうまくいくでしょう..頑張ってください

于 2014-09-22T06:17:25.210 に答える