.java不使用2或3参数的View构造函数; XML属性将不起作用

我是新手我有问题创造游戏

执行过程

activity_main.xml – > MainActivity.java – > GameLoop.java – > action.xml(错误) – > CustomView.java

Custom view CustomView is not using the 2- or 3-argument View constructors; XML attributes will not work 

我不明白……

Solutions Collecting From Web of ".java不使用2或3参数的View构造函数; XML属性将不起作用"

你需要在CustomView中覆盖View的其他2个构造函数:

 public CustomView(Context context) { super(context); init(context); } public CustomView(Context context, AttributeSet attrs) { super(context, attrs); init(context); } public CustomView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); init(context); } private void init(Context context) { //do stuff that was in your original constructor... } 

你也需要实现这些构造函数:

 //Constructor that is called when inflating a view from XML. View(Context context, AttributeSet attrs) //Perform inflation from XML and apply a class-specific base style. View(Context context, AttributeSet attrs, int defStyle) 

我认为这取决于您如何创build自定义视图以及如何使用它。
并不是所有的3个构造函数都是必须
如果你使用属性xml文件来创build视图,但是不会使用defstyle,那么就调用它

 public CustomView(Context context, AttributeSet attrs) { this(context, attrs); //Your code } 

如果你不使用属性和defstlye /我看到这个例子/你高兴只打电话

 public CustomView(Context context) { super(context); //Your code } 

如果你想使用defstyle和属性

 public CustomView(Context context, AttributeSet attrs) { this(context, attrs); //Yourcode }