代码之家  ›  专栏  ›  技术社区  ›  HelloCW

android.support.v7中的dialogpreference导致override nothing错误

  •  1
  • HelloCW  · 技术社区  · 7 年前

    代码A运行良好,但是当我替换 import android.preference.DialogPreference 具有 import android.support.v7.preference.DialogPreference

    为什么?

    误差

    onCreateDialogView() override nothing
    onDialogClosed() override nothing
    showDialog() override nothing
    

    代码A

    import android.preference.DialogPreference
    import android.app.AlertDialog
    import android.content.Context
    import android.os.Bundle
    import android.util.AttributeSet
    import android.view.View
    import info.dodata.mirror.R
    import android.widget.EditText
    import org.jetbrains.anko.*
    import utility.PreferenceTool
    
    class DialogChangePassword(context: Context, attrs: AttributeSet) : DialogPreference(context, attrs) {
    
        private lateinit var mView: View
        private lateinit var mContext: Context
    
        init {
            dialogLayoutResource = R.layout.item_custom_password_dialog
        }
    
        override fun onCreateDialogView(): View {
            mView = super.onCreateDialogView()
            mContext=mView.context
            return mView
        }
    
        override fun onDialogClosed(positiveResult: Boolean) {
            super.onDialogClosed(positiveResult)
        }
    
        override fun showDialog(state: Bundle?) {
            super.showDialog(state)
    
            val d = dialog as AlertDialog
            d.getButton(AlertDialog.BUTTON_POSITIVE).setOnClickListener {           
                   d.dismiss()           
            }
        }
    
    
    }
    
    1 回复  |  直到 7 年前
        1
  •  2
  •   Cililing    7 年前

    请参阅文档。

    onCreateDialogView() override nothing
    onDialogClosed() override nothing
    showDialog() override nothing
    

    这些方法在 android.preference.DialogPreference (b) https://developer.android.com/reference/android/preference/DialogPreference )但是没有什么方法能像 android.support.v7.preference.DialogPreference (α) https://developer.android.com/reference/android/support/v7/preference/DialogPreference )

    这些类不一样,它们没有相同的公共接口。这就是原因。