我的代码是用Java编写的,并且正在将其重构为Kotlin。我有这个:
Dialog dialog = new Dialog(this, android.R.style.Theme_Translucent_NoTitleBar) {
@Override
public boolean dispatchTouchEvent(MotionEvent event) {
dismiss();
dialog = null;
setLockedDialog(false);
return false;
}
};
我无法使用Kotlin编写它。这是我的方法:
dialog = Dialog(this, android.R.style.Theme_Translucent_NoTitleBar) {
override fun dispatchTouchEvent(ev: MotionEvent) {
// TODO Implement function
}
}
我的Android Studio向我显示:
1- Type mismatch. Required: Boolean. Found: Int
(在下方android.R.style.Theme_Translucent_NoTitleBar
)。
2-Type mismatch. Required: DialogInterface.OnCancelListener! Found: () - > Unit
覆盖替代功能。
有什么建议么?
将代码更改为此:
dialog = object: Dialog(this, android.R.style.Theme_Translucent_NoTitleBar) {
override fun dispatchTouchEvent(ev: MotionEvent): Boolean {
// TODO Implement function
}
}
它抱怨的原因是因为两件事。首先,您需要创建一个对象以覆盖Dialog的功能。其次,dispachTouchEvent不是返回布尔值而是单位。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句