微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

com.google.android.material.textview.MaterialTextView 不能转换为 android.widget.EditText

如何解决com.google.android.material.textview.MaterialTextView 不能转换为 android.widget.EditText

将 EditText 放入 AppBarLayout 会引发异常。 这是我的布局。

<com.google.android.material.appbar.AppBarLayout
    android:id="@+id/appbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <include
        android:id="@+id/toolbar_included"
        layout="@layout/toolbar"
        app:layout_scrollFlags="scroll|enteralways" />

    <com.google.android.gms.ads.AdView
        android:id="@+id/adView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:contentDescription="@null"
        app:adSize="BANNER"
        app:adUnitId="@string/adUnitIdTest_Banner"
        app:layout_scrollFlags="noScroll" />

    <EditText
        android:id="@+id/title"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:focusableInTouchMode="true"
        android:hint="@string/title_hint"
        android:importantForAutofill="no"
        android:inputType="textCapWords"
        android:selectAllOnFocus="true"
        android:textSize="15sp"
        app:fontFamily="@font/raleway_regular" />

</com.google.android.material.appbar.AppBarLayout>

开始活动时出现以下异常:

Caused by: java.lang.classCastException: com.google.android.material.textview.MaterialTextView cannot be cast to android.widget.EditText

viewBiding 为真。 我不知道异常指的是哪个 MaterialTextView。

 override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    binding = ActivityWorkoutBinding.inflate(layoutInflater)
    setContentView(binding.root)

binding = ActivityWorkoutBinding.inflate(layoutInflater) 正在抛出异常。

最好的问候

解决方法

我刚刚想通了。 AppBarLayout 似乎有一个 ID 为 title 的内置 TextView。我将 EditText 中的 id 从 title 更改为其他内容,并且成功了。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。