1

我得到 ClassCastException: android.widget.LinearLayout 我试图抓住这样一个事实,即视图(Lineralayout)中包含 listview 的元素(它的一个子项)。

自定义视图:

public class MasterView extends View {
public boolean done=false;
public MasterView(Context context) {
    super(context);
}
public MasterView(Context context, AttributeSet attrs) {
    super(context, attrs);
}

public MasterView(Context context, AttributeSet attrs, int defStyle) {
    super(context, attrs, defStyle);
}
@Override
protected void onFinishInflate() {
    // TODO Auto-generated method stub
    done=true;
    super.onFinishInflate();
}

}

我这样称呼它:

View master = (View)findViewById(R.id.master);
MasterView master2 = (MasterView)master; //exception

xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/master"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<RelativeLayout
    android:id="@+id/cnt"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_weight="0.03" >

</RelativeLayout>

</LinearLayout>

我用列表膨胀 cnt

4

1 回答 1

3

xml 中的 R.id.master 元素不是 MasterView 类型。将您的 xml 更改为:

<yourpackage.MasterView xmlns:android="http://schemas.android.com/apk/res/android"
  android:id="@+id/master"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  android:orientation="vertical" >
  <RelativeLayout
    android:id="@+id/cnt"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_weight="0.03" >
  </RelativeLayout>
</yourpackage.MasterView>
于 2012-07-06T20:28:41.670 回答