首页 > 解决方案 > 对象不是抽象的,不实现抽象成员?

问题描述

我已实施CustomAlertDialogBuilder,但收到以下警告:

对象不是抽象的,也没有实现抽象成员

下面是我的代码:

override fun onEditClick(item: Question) {
    CustomAlertDialogBuilder(context).setCancelable(true)

    CustomAlertDialogBuilder(context).addMessage(R.string.chat_message).setPositiveButton(R.string.chat,

        object : CustomAlertDialogBuilder.OnItemDialogClickListener {
            override fun onClick(dialog: CustomAlertDialogBuilder.CustomDialogInterface) {
                val intent = Intent(context, ChatActivity::class.java)
                startActivity(intent)
            }
        }).setNegativeButton("OK", null).build()?.show()
}

下面是错误的截图:

错误截图

下面的CustomDialogBuilder.OnItemDialogClickListener界面:

interface OnItemDialogClickListener {
    fun onClick(dialog: CustomDialogInterface)
    fun onClick(arg0: CustomAlertDialogBuilder, arg1: Int)
}

标签: androidkotlindialog

解决方案


您应该添加arg1:Int为重写onClick函数的第二个参数,并将第一个参数的类型设为CustomAlertDialogBuilder,例如:

override fun onEditClick(item: Question) {
    CustomAlertDialogBuilder(context).setCancelable(true)

    CustomAlertDialogBuilder(context).addMessage(R.string.chat_message).setPositiveButton(R.string.chat,

    object : CustomAlertDialogBuilder.OnItemDialogClickListener {
        override fun onClick(dialog: CustomAlertDialogBuilder, arg1: Int) {
            val intent = Intent(context, ChatActivity::class.java)
            startActivity(intent)
        }

        override fun onClick(dialog: CustomDialogInterface) {
            // ...
        }
    }).setNegativeButton("OK", null).build()?.show()
}

还要检查是否CustomAlertDialogBuilder.OnItemDialogClickListener实现了其他方法。


推荐阅读