带有Firebase edittext的DialogFragment SignIn不能为null错误



我创建了一个xml,其中包含2个edittext和1个image,并在DialogFragment中进行了膨胀。然后我创建了3个按钮。但只有我的肯定按钮不起作用。

class SignInDialogFragment: DialogFragment() {
private lateinit var auth: FirebaseAuth
private val tag1:String="className"
private lateinit var intent:Intent
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
Log.d(tag,"Tıklandı. 1")
intent=Intent(activity,SignUpActivity::class.java)
auth = Firebase.auth
return activity?.let {
val builder= AlertDialog.Builder(requireContext(),R.style.MyThemeOverlay_MaterialComponents_MaterialAlertDialog)
val inflater=requireActivity().layoutInflater
builder.setView(inflater.inflate(R.layout.sign_in,null))
.setPositiveButton(R.string.signIn) { dialog, id ->
Log.d(tag1, "edittext2= ${eposta.text}")
auth.signInWithEmailAndPassword(
eposta.text.toString(),
sifreGir.text.toString()
)
.addOnCompleteListener { task ->
if (task.isSuccessful) {
Log.d(tag1, "signInWithEmail:success")
val user = auth.currentUser
updateUI(user)
} else {
Toast.makeText(
requireContext(), "Authentication failed.",
Toast.LENGTH_SHORT
).show()
updateUI(null)
}
}
//Giriş eylemleri
}
.setNeutralButton(R.string.sign_up) { dialog, which ->
startActivity(intent)
//Kayıt ol sayfaseına göndersin
dialog.dismiss()
Log.d(tag1,"Kayıt ol' a geçti")
}
.setNegativeButton(R.string.cancel) { dialog, id ->
//İptal et
dialog.cancel()
Log.d(tag1,"Dialog dismissed!")
}
builder.create()
}?:throw IllegalStateException("Aktivite boş olamaz.")
}

这是我的Logcat错误:

java.lang.NullPointerException:eposta不能为null在com.eborairy.beaotis.SignInDialogFragment$onCreateDialog$$inlined$let$lambda$1.onClick(SignInDialogFragment.kt:31(网址:com.android.internal.app.AlertController$ButtonHandler.handleMessage(AlertController.java:160(在android.os.Handler.dispatchMessage(Handler.java:102(在android.os.Looper.loop(Looper.java:135(在android.app.ActivityThread.main(ActivityThreads.java:5221(位于java.lang.reflect.Method.ioke(本机方法(位于java.lang.reflect.Method.ioke(Method.java:372(网址:com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899(网址:com.android.internal.os.ZygoteInit.main(ZygoteNit.java:694(

我在这里找到了这个。我有这个想法,但我不能这样使用它,它给了我无法解决的参考错误。我该怎么办?

只需在代码中添加以下行

val view = inflater.inflate(R.layout.sign_in,null)
builder.setView(view)

更换

eposta

用这个

view.eposta

最新更新