layout可以加入view,只要它是继承view的。
可如下的Chessboard一加入到layout中,程序崩掉。
这是为什么?package five.itcast.cn;import android.content.Context;
import android.view.View;
//棋盘
public class Chessboard extends View {

public Chessboard(Context context) {
super(context);
// TODO Auto-generated constructor stub
}
}<?xml version="1.0" encoding="utf-8"?>
<!--You can check LayoutParams from android.view.ViewGroup-->
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@android:color/white"
    >
    <five.itcast.cn.Chessboard
android:id="@+id/chessboard"
android:layout_width="match_parent"
android:layout_height="match_parent"
tileSize="24"
/>
</FrameLayout>

解决方案 »

  1.   

    我这里帮你运行了下,的确有错!错误在哪里呢?错就错在你的构造函数!你用的是一个参数的构造函数!但是如果你要在布局文件中要添加你自定义的view,就必须用两个参数的构造函数!如下: public Chessboard(Context context, AttributeSet attrs) {
            
        }
    第二个参数指的是自定义的组件的一些属性,就像长宽一样,你可以给组件属性,就是通过这个来传递的!这样就没问题了!你试试吧!
      

  2.   

    lz没发Activity子类的代码,不知道用的哪个 构造函数,要是正如1楼所说,那楼上正解
      

  3.   


    xml中使用自定义view,构造函数必须加上属性AttributeSet这一项!