1

私は ClassCastException を取得します: android.widget.LinearLayout ビュー (Lineralayout) に listview (その子の 1 つ) の要素があるという事実をキャッチしようとしています。

カスタムビュー:

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 に答える