Ósc*_*car 1 android android-dialog kotlin motionevent
我的代码是用 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;
}
};
Run Code Online (Sandbox Code Playgroud)
我无法使用 Kotlin 编写它。这是我的方法:
dialog = Dialog(this, android.R.style.Theme_Translucent_NoTitleBar) {
override fun dispatchTouchEvent(ev: MotionEvent) {
// TODO Implement function
}
}
Run Code Online (Sandbox Code Playgroud)
我的 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
}
}
Run Code Online (Sandbox Code Playgroud)
它抱怨的原因是因为两件事。首先,你需要创建一个对象来覆盖Dialog的一个功能。其次,dispachTouchEvent 返回的不是布尔值而是单位。
| 归档时间: |
|
| 查看次数: |
1212 次 |
| 最近记录: |