我想使用Java中的库,它有很多错误,因此我试图将其更改为Kotlin。而且AndroidStudio无法将Java正确地转换为Kotlin,因此我必须逐个功能地进行操作并手动进行检查。但是这3个构造函数给出了错误:
错误:None of these following functions can be called with the arguments supplied
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);
}
科特琳:
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)
}
答案 0 :(得分:2)
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)
}
}