Несколько конструкторов при расширении предпочтений Java-класса с помощью Kotlin - PullRequest
0 голосов
/ 25 июня 2019

Я пытаюсь взять этот Java-класс Time Preference и преобразовать его в Kotlin:

public TimePreference(Context context) {
    this(context, null);
}
public TimePreference(Context context, AttributeSet attrs) {
    this(context, attrs, 0);
}
public TimePreference(Context context, AttributeSet attrs,
        int defStyleAttr) {
    this(context, attrs, defStyleAttr, defStyleAttr);
}
public TimePreference(Context context, AttributeSet attrs,
        int defStyleAttr, int defStyleRes) {
    super(context, attrs, defStyleAttr, defStyleRes);

    // Do custom stuff here
    // ...
    // read attributes etc.
}

Я могу получить первичный конструктор, но не вторичные конструкторы. При запуске возникает сбой из-за ошибок разметки макета.

class SpinnerPreference constructor(context: Context, attrs:  
AttributeSet, defStyleAttributes: Int, defStyleRes: Int) : 
Preference(context, attrs, defStyleAttributes, defStyleRes) {

}

1 Ответ

0 голосов
/ 25 июня 2019

Из комментария commonsware проверил документы на этот раз немного более осторожно, и это, кажется, работает:).

class SpinnerPreference : Preference {

constructor(context: Context, attrs: AttributeSet, defStyleAttributes: Int, defStyleRes: Int) : super(context, attrs, defStyleAttributes, defStyleRes)
constructor(context: Context, attrs: AttributeSet, defStyleAttributes: Int) : super(context, attrs, defStyleAttributes)
constructor(context: Context, attrs: AttributeSet) : super(context, attrs)
constructor(context: Context) : super(context)

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...