.java не использует конструкторы View 2 или 3 аргумента; Атрибуты 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
Я не понимаю......
Ответы
Ответ 1
Вам нужно переопределить другие 2 конструктора View в CustomView:
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...
}
Ответ 2
Вам также нужно реализовать эти конструкторы:
//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)
Ответ 3
Я думаю, это зависит от того, как вы создаете свой пользовательский вид и как вы его будете использовать
Не все 3 конструктора действительно нужны.
Если вы создаете представление с атрибутом xml файла, но не будете использовать defstyle, его достаточно вызвать
public CustomView(Context context, AttributeSet attrs) {
this(context, attrs);
//Your code
}
Если вы не используете атрибуты и defstlye/i видели примеры для этого/Вы счастливы только позвонить
public CustomView(Context context) {
super(context);
//Your code
}
и если вы также хотите использовать defstyle и атрибуты
public CustomView(Context context, AttributeSet attrs) {
this(context, attrs);
//Yourcode
}