如何在片段内使用CircleImageView库this:'de.hdodenhof:circleimageview:3.1.0'?

问题描述

This is the error I'm getting我正在尝试在onViewCreated()方法内的片段中使用此库,但我遇到此强制转换错误:-无法强制转换java.lang.classCastException:androidx.appcompat.widget.AppCompatTextView前往de.hdodenhof.circleimageview.CircleImageView。我不知道如何解决这个错误。有人可以帮我吗? FragmentProfile.java:

public class FragmentProfile extends Fragment implements View.OnClickListener {
            Button sign_out;
            TextView user_number;
            private CircleImageView userImage;
        
            @Nullable
            @Override
            public View onCreateView(@NonNull LayoutInflater inflater,@Nullable ViewGroup container,@Nullable Bundle savedInstanceState) {
                return inflater.inflate(R.layout.fragment_profile,container,false);
            }
        
            @Override
            public void onViewCreated(@NonNull View view,@Nullable Bundle savedInstanceState) {
                super.onViewCreated(view,savedInstanceState);
        
                sign_out = getActivity().findViewById(R.id.user_logout);
                userImage =  getActivity().findViewById(R.id.user_display_name);
                user_number = getActivity().findViewById(R.id.phone_number);
        
                sign_out.setonClickListener(this);
            }
        
            @Override
            public void onClick(View view) {
                FirebaseAuth.getInstance().signOut();
                startActivity(new Intent(getActivity(),Login.class));
                getActivity().finish();
            }
        }
fragment_profile.xml
    
      
     
    
    <?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="match_parent">
    
        <ImageView
            android:layout_width="match_parent"
            android:layout_height="@dimen/dp_180"
            android:scaleType="fitXY"
            android:src="@drawable/money" />
    
        <de.hdodenhof.circleimageview.CircleImageView xmlns:app="http://schemas.android.com/apk/res-auto"
            android:id="@+id/profile_image"
            android:layout_width="@dimen/dp_95"
            android:layout_height="@dimen/dp_95"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="@dimen/dp_140"
            android:scaleType="centerCrop"
            android:src="@mipmap/ic_launcher"
            app:civ_border_color="@color/textColor"
            app:civ_border_width="@dimen/dp_2" />
    
        <TextView
            android:id="@+id/user_display_name"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@id/profile_image"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="@dimen/dp_4"
            android:fontFamily="@font/balsamiq_sans_bold"
            android:text="@string/username"
            android:textColor="@color/border"
            android:textSize="@dimen/sp_22" />
    
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_above="@id/user_logout"
            android:layout_below="@id/user_display_name"
            android:layout_margin="@dimen/dp_12"
            android:orientation="vertical">
    
            <TextView
                android:id="@+id/phone_number"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginStart="@dimen/dp_12"
                android:layout_marginTop="@dimen/dp_30"
                android:fontFamily="@font/balsamiq_sans_bold"
                android:text="+91-987654321"
                android:textColor="@android:color/black"
                android:textSize="@dimen/dp_18" />
    
        </LinearLayout>
    
        <Button
            android:id="@+id/user_logout"
            android:layout_width="@dimen/dp_200"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_centerHorizontal="true"
            android:layout_marginBottom="@dimen/dp_30"
            android:background="@drawable/button_shape"
            android:text="@string/sign_out"
            android:textAllCaps="false"
            android:textColor="@android:color/white"
            android:textStyle="bold" />
    
    </RelativeLayout>

解决方法

key
,

在这里,您正在将Textview ID解析为CircleImageView。您应该将userImage = getActivity().findViewById(R.id.user_display_name);更改为userImage = getActivity().findViewById(R.id.profile_image);。这就是为什么您遇到java.lang.ClassCastException:androidx.appcompat.widget.AppCompatTextView异常的原因。

,

您的问题在这里:

private CircleImageView userImage;
userImage =  getActivity().findViewById(R.id.user_display_name);

并在您的布局中:

  <TextView
     android:id="@+id/user_display_name"

不能TextView投射到CircleImageView中。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...