LinearLayout 无法转换为我创建的类

Posted

技术标签:

【中文标题】LinearLayout 无法转换为我创建的类【英文标题】:LinearLayout cannot be cast to a class I've created 【发布时间】:2014-11-30 23:39:49 【问题描述】:

我的异常:原因:java.lang.ClassCastException: android.widget.LinearLayout 不能转换为 dismo.ufrj.br.bradmobile.HeaderClass

我创建了一个扩展 LinearLayout 的类 HeaderClass。但我似乎无法以正确的方式投射它。(标题是线性布局)

这是代码

    headerClass = (HeaderClass) findViewById(R.id.header);

【问题讨论】:

贴出全部相关代码 您需要在布局中指定您的自定义 View 类,而不是 LinearLayout。 【参考方案1】:

错误消息中准确说明了问题:您的布局包含LinearLayout,并且您尝试将其强制转换为您自己的类。你不能那样做。相反,您需要将 xml 更改为:

<dismo.ufrj.br.bradmobile.HeaderClass
    ....
    ....
    .... >

  ....

</dismo.ufrj.br.bradmobile.HeaderClass>

继承在这里并不重要,但是由于您的 HeaderClass 扩展了 LinearLayout,您可以在代码中将上述 xml 转换为 LinearLayout

【讨论】:

你有一个额外的/ @MikeM.,我确实做到了。固定。

以上是关于LinearLayout 无法转换为我创建的类的主要内容,如果未能解决你的问题,请参考以下文章

Android LinearLayout:分隔线不会显示

LinearLayout.setBackgroundColor(int)在Android中不起作用

environment.getArgument 无法在 graphql-java 中转换为我自己的 java 对象

android.widget.LinearLayout 无法转换为 android.widget.TextView

错误:android.widget.LinearLayout 无法转换为 android.widget.ImageView

android.support.v4.app.FragmentTabHost 无法转换为 android.widget.LinearLayout