Java 将扩展视图转换为视图布局器

Java 将扩展视图转换为视图布局器,java,android,android-layout,Java,Android,Android Layout,我想做的是能够拥有自己的自定义控件,该控件上会有一些属性。为此,我扩展了一个现有视图(RelativeView),并创建了自己的视图。问题是,当我试图通过inflater从xml布局中获取相对视图时,我得到了java lang类强制转换验证。我怎样才能避免呢 MyRelativeView control = (MyRelativeView) LayoutInflater.from(getContext()).inflate(R.layout.something, null, false); M

我想做的是能够拥有自己的自定义控件,该控件上会有一些属性。为此,我扩展了一个现有视图(RelativeView),并创建了自己的视图。问题是,当我试图通过inflater从xml布局中获取相对视图时,我得到了java lang类强制转换验证。我怎样才能避免呢

MyRelativeView control = (MyRelativeView) LayoutInflater.from(getContext()).inflate(R.layout.something, null, false);
MyRelativeView扩展了RelativeLayout,膨胀视图是RelativeLayout。为什么我会

java.lang.ClassCastException: android.widget.RelativeLayout cannot be cast to controls.MyRelativeView

布局文件中应该有自定义视图,视图扩展了relativeview,但relativeview不是myrelativeview。应该是这样的:

<com.example.customviews.myRelativeView
     xmlns:android="http://schemas.android.com/apk/res/android"
     custom:showText="true"
     custom:labelPosition="left" 
     android:layout_width="match_parent"
     android:layout_height="match_parent" >

    <TextView
           android:layout_width="match_parent"
           android:layout_height="wrap_content"
           android:text="Some text"
           android:paddingTop ="4dp"
           android:paddingBottom="4dp"
           android:id="@+id/textViewOne"
        />


    <TextView
           android:layout_width="match_parent"
           android:layout_height="wrap_content"
           android:text="Some text"
           android:paddingTop ="4dp"
           android:paddingBottom="4dp"
           android:id="@+id/textViewTwo"
        />
    </com.example.customviews.myRelativeView>


Basic,但是您的@+id/xml中的某个东西真的是
MyRelativeView
?显示您的
R.layout。某个东西
No.@+id/某个东西是一个RelativeLayout。如果我在编辑器模式下将其设置为MyRelativeView,我可以看到一个空白布局。“No.@+id/某物是一个RelativeLayout。”:那么,是什么让你认为你可以将
RelativeLayout
投射到你的
MyRelativeView
ClassCastException
告诉你一切,由于你没有发布任何重要的代码或布局文件,任何人都很难帮助你。“你为什么认为你可以向MyRelativeView投射RelativeLayout”:MyRelativeView扩展RelativeLayout的事实。这是我的右布局图