gpt4 book ai didi

android - 如何在 Kotlin 中制作多个构造函数?

转载 作者:行者123 更新时间:2023-12-02 13:08:37 46 4
gpt4 key购买 nike

我想使用 Java 中的库,但它有很多错误,所以我正在尝试将其更改为 Kotlin。而且 AndroidStudio 没有正确地将 Java 转换为 Kotlin,所以我必须逐个函数地执行它并手动检查它。但是这 3 个构造函数给出了错误:

错误:无法使用提供的参数调用以下函数中的任何一个

Java:

public class CountryCodePicker extends RelativeLayout
...

public CountryCodePicker(Context context) {
super(context);
if (!isInEditMode()) init(null);
}

public CountryCodePicker(Context context, AttributeSet attrs) {
super(context, attrs);
if (!isInEditMode()) init(attrs);
}

public CountryCodePicker(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
if (!isInEditMode()) init(attrs);
}

Kotlin :

class CountryCodePicker: RelativeLayout
...

constructor(context: Context): this{
super(context)
if (!isInEditMode) init(null)
}

constructor(context: Context, attrs: AttributeSet): this{
super(context, attrs)
if (!isInEditMode) init(attrs)
}

constructor(context: Context, attrs: AttributeSet, defStyleAttr: Int): this{
super(context, attrs, defStyleAttr)
if (!isInEditMode) init(attrs)
}

最佳答案

class CountryCodePicker: RelativeLayout {

constructor(context: Context) : super(context) {
if (!isInEditMode) init(null)
}

constructor(context: Context, attrs: AttributeSet): super(context, attrs){
if (!isInEditMode) init(attrs)
}

constructor(context: Context, attrs: AttributeSet, defStyleAttr: Int): super(context, attrs, defStyleAttr) {
if (!isInEditMode) init(attrs)
}


}

关于android - 如何在 Kotlin 中制作多个构造函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56276969/

46 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com