Вот мой код, когда я пытаюсь создать настраиваемое представление. Я понимаю, что для переопределения необходимо определить 3 основных конструктора. Я не понимаю, почему это падает на декларацию пользовательских конструкторов представления, если я добавляю JSONObject. Я все еще отменяю все необходимые конструкторы в super. Он отлично работает, если я удалю JSONObject из всех 3 конструкторов и оставлю его в форме по умолчанию.
В чем может быть проблема?
public abstract class _ASListItem extends ConstraintLayout implements IControl, IASListItem
{
private JSONObject jsonObject = new JSONObject();
public void onSetJSONObject(JSONObject jsonObject)
{
this.jsonObject = jsonObject;
}
public JSONObject onGetJSONObject() { return this.jsonObject; }
public _ASListItem(JSONObject jsonObject, Context context)
{
super(context);
this.onSetJSONObject(jsonObject);
}
public _ASListItem(JSONObject jsonObject, Context context, AttributeSet attrs)
{
super(context,attrs);
this.onSetJSONObject(jsonObject);
}
public _ASListItem(JSONObject jsonObject, Context context, AttributeSet attrs, int defStyle)
{
super(context,attrs,defStyle);
this.onSetJSONObject(jsonObject);
}
@Override
protected void onAttachedToWindow()
{
super.onAttachedToWindow();
this.onSetLayoutView(this);
this.onInitInstance(this);
this.onHandleInstance(this);
this.onUpdateInstance(this);
}
}
Вот ошибка, которую я получаю от интерпретатора Java
java.lang.RuntimeException: Unable to start activity ComponentInfo{mobile.application/mobile.application.activity.activityUserInfo}: android.view.InflateException: Binary XML file line #34: Binary XML file line #34: Error inflating class mobile.application.custom.customHeadUserInfo
Спасибо. Я также прочитал много информации и должно быть так, как вы говорите. Кроме того, он всегда запускает как минимум два базовых конструктора.




Вы не можете перегрузить конструкторы представления по умолчанию с помощью настраиваемых параметров. Просто удалите
JSONObjectиз конструкторов и используйте методonSetJSONObject(JSONObject jsonObject)