Android Kotlin中匿名类的重写方法

奥斯卡奖

我的代码是用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覆盖替代功能。

有什么建议么?

juancamilo87

将代码更改为此:

dialog = object: Dialog(this, android.R.style.Theme_Translucent_NoTitleBar) {
    override fun dispatchTouchEvent(ev: MotionEvent): Boolean {
        // TODO Implement function
    }
}

它抱怨的原因是因为两件事。首先,您需要创建一个对象以覆盖Dialog的功能。其次,dispachTouchEvent不是返回布尔值而是单位。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章