Android использует базовый конструктор custom-view

Вот мой код, когда я пытаюсь создать настраиваемое представление. Я понимаю, что для переопределения необходимо определить 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)

Stanislav Bondar 17.12.2018 14:59

Спасибо. Я также прочитал много информации и должно быть так, как вы говорите. Кроме того, он всегда запускает как минимум два базовых конструктора.

xxxslider666 18.12.2018 08:30
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
2
34
0

Другие вопросы по теме