当我尝试充气时,我得到了这个例外
07-22 19:15:39.903:ERROR / AndroidRuntime(3810):引起:java.lang.ClassCastException:android.widget.RelativeLayout
我有一个基类:
public class UIBase extends RelativeLayout {}
更具体的课程:
public class Countdown extends UIBase {}
然后我尝试充气并且例外:
UIBase newView = (UIBase) inflater.inflate(layoutId, parent, true);
这是XML文件:
<?xml version="1.0" encoding="utf-8"?>
<com.Countdown xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/countdown"
android:layout_alignParentTop="true"
android:layout_alignParentRight="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
>
<TextView
android:id="@+id/countdownText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="0" />
</com.Countdown>
有谁知道我做错了什么?
答案 0 :(得分:16)
根据文档,inflate()返回“膨胀层次结构的根视图。如果提供了root并且attachToRoot为true,则为root;否则它是膨胀的XML文件的根。”
由于你传入了true,返回值是“parent”,显然不是从UIBase派生的。