为自定义相对布局充气时,类强制转换异常?

时间:2010-07-23 02:22:43

标签: android

当我尝试充气时,我得到了这个例外

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>

有谁知道我做错了什么?

1 个答案:

答案 0 :(得分:16)

根据文档,inflate()返回“膨胀层次结构的根视图。如果提供了root并且attachToRoot为true,则为root;否则它是膨胀的XML文件的根。”

由于你传入了true,返回值是“parent”,显然不是从UIBase派生的。