对话框中的按钮在片段中的 onStart() 中总是 return null

Button in dialog always return null in onStart() in a Fragment

我在 Fragment 中有对话框。当我单击对话框中的“确定”按钮时,我得到 null object reference error.

fun showDialog(){
        //get Dialog : Numbers
        val dialogView = LayoutInflater.from(context)
            .inflate(R.layout.dialog_b, null)
        //AlertDialog builder
        val dialogBuilder = AlertDialog.Builder(context)
            .setView(dialogView)
        //Show Dialog
        val alertDialog = dialogBuilder.show()

        //setOnClickListener(android.view.View$OnClickListener)' on a null object reference
        dialogView.btn_ok.setOnClickListener {

            Log.d("Clicked", et_one.text.toString())

            alertDialog.dismiss()
        }
     }

Logcat

java.lang.IllegalStateException: et_one must not be null at com.example.algorithmsapp.AlgorithmsFragments.BFragment$onStart.onClick(BFragment.kt:63)
     

您需要在此处初始化Edittext 以从edittext 中获取值。在下方添加您的代码

var et_one: EditText
var btn_ok: Button
    et_one= layoutInflateView.findViewById(R.id.et_one)
    btn_ok= layoutInflateView.findViewById(R.id.btn_ok)

所以你的代码看起来像这样:

 fun showDialog(){
    //get Dialog : Numbers
    val dialogView = LayoutInflater.from(context)
        .inflate(R.layout.dialog_b, null)
    //AlertDialog builder
    val dialogBuilder = AlertDialog.Builder(context)
        .setView(dialogView)
    //Show Dialog
    val alertDialog = dialogBuilder.show()
    var et_one: EditText
    var btn_ok: Button

    et_one= layoutInflateView.findViewById(R.id.et_one)
    btn_ok= layoutInflateView.findViewById(R.id.btn_ok)
    //setOnClickListener(android.view.View$OnClickListener)' on a null object reference
    dialogView.btn_ok.setOnClickListener {

        Log.d("Clicked", et_one.text.toString())

        alertDialog.dismiss()
    }
 }