簡體   English   中英

我不斷收到錯誤 java.lang.ClassCastException: androidx.appcompat.widget.AppCompatImageView cannot be cast to android.widget.TextView

[英]i keep getting the error java.lang.ClassCastException: androidx.appcompat.widget.AppCompatImageView cannot be cast to android.widget.TextView

 <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <ImageView
        android:id="@+id/imageView3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        tools:srcCompat="@tools:sample/avatars" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Title"
            android:textSize="20sp"
            android:id="@+id/text1"
            android:layout_margin="10dp">

        </TextView>

        <TextView
            android:id="@+id/text2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Description"
            android:textSize="20sp">

        </TextView>

    </LinearLayout>
  </LinearLayout>

這是我的java代碼

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;

public class MovieAdapter extends RecyclerView.Adapter<MovieAdapter.ViewHolder> {
    Context context;
    String[] movieNameList;
    String[] movieDescriptionList;
    int[] movieImages;


    public static class ViewHolder extends RecyclerView.ViewHolder{
        TextView rowName;
        TextView rowDescription;
        TextView rowImage;

        public ViewHolder(View itemView){
            super(itemView);
            rowName = itemView.findViewById(R.id.text1);
            rowDescription = itemView.findViewById(R.id.text2);
            rowImage = itemView.findViewById(R.id.imageView3);
        }

    }

    public MovieAdapter(Context context,String[] movieNameList,String[] movieDescriptionList,int[] 
     movieImages){
        this.context = context;
        this.movieNameList = movieNameList;
        this.movieDescriptionList = movieDescriptionList;
        this.movieImages = movieImages;
    }



@NonNull
@Override
    public MovieAdapter.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        LayoutInflater inflater = LayoutInflater.from(context);
        View view = inflater.inflate(R.layout.firstpage,parent,false);
        return new ViewHolder(view);

    }

@Override
    public void onBindViewHolder(@NonNull MovieAdapter.ViewHolder holder, int position) {
        holder.rowName.setText(movieNameList[position]);
     }

@Override
    public int getItemCount() {
        return movieNameList.length ;
    }
}

這是我得到的錯誤:java.lang.ClassCastException: androidx.appcompat.widget.AppCompatImageView 無法轉換為 android.widget.TextView at com.example.movi​​ebookingapp2.MovieAdapter$ViewHolder.(MovieAdapter.java:27) at com .example.movi​​ebookingapp2.MovieAdapter.onCreateViewHolder(MovieAdapter.java:46) 在 com.example.movi​​ebookingapp2.MovieAdapter.onCreateViewHolder(MovieAdapter.java:11)

將 rowImage 的引用更改為

 TextView rowImage;

 ImageView rowImage;  



 

我認為您可能在 UI 中使用了imageView ,但在適配器中,您將其定義為textView

請先查看XML文件並檢查TextView rowImage

   public static class ViewHolder extends RecyclerView.ViewHolder{
        ...
        TextView rowImage;
    
        public ViewHolder(View itemView){
            super(itemView);
            ...
            rowImage = itemView.findViewById(R.id.imageView3);
        }
    
    }

暫無
暫無

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

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