web-dev-qa-db-ja.com

Android:Java.lang.ClassCastException:Android.widget.imageViewをAndroid.widget.textViewにキャストできません

リストビューテンプレートでこの問題を修正することはできません。投稿のタイトルのようなエラーがありますが、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):致命的な例外:メイン
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)

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

59
Release

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

その問題のいくつかの解決策:

プロジェクトをきれいにします。

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

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

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

179
Benito Bertoli

プロジェクトをクリーンアップするだけで、すべてうまくいきます。

4
Aïssa Ghouti

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

1
Rohit

最初は、エラーが発生していました:

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

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

修正として、idTextViewの名前を

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

クリーンアップやその他の手法でも機能しませんでしたが、最終的にidの名前を変更すると魅力的に機能しました。

1
touchchandra

Visual Studio Xamarin.Android Development

多くの人が言及しているように、CleaningプロジェクトはVisual Studioで私のためにトリックをしましたXamarin.Formsアプリの場合、新しいライブラリ参照で変更をプルした後に起こりました。

プロジェクトをきれいにします。

基本的に、プロジェクトでRosource.Designer.csファイルを再構築および再生成するもの。 (@Benito Bertoliから借用)

1
Ahmed Alejo

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

0

.xmlファイルに画像ビューと、Javaコードで動的に生成され、IDを指定したボタンがあり、これら2つは同じIDをランダムに取得しているため、このエラーが発生しますコードで指定したIDを変更してみてください。

0
Atieh mn