对话框中的按钮在片段中的 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()
}
}
我在 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()
}
}