2021 Oct. 10.
出典 Android Dialog/AlertDialog getButton NullPointerException | Lua Software Code
概要
AlertDialogのgetButton()により、OKボタン、Cancelボタンのインスタンスを取得する
DialogFragmentのonStart()にokButton.setOnClickListener { }、cancelButton.setOnClickListener { }を組み込む
コード
class MyDialogFragment: DialogFragment() { // thank for https://code.luasoftware.com/tutorials/android/android-alertdialog-getbutton-null-pointer-exception/ private val okButton: Button by lazy { (dialog as AlertDialog).getButton(AlertDialog.BUTTON_POSITIVE) } private val cancelButton: Button by lazy { (dialog as AlertDialog).getButton(AlertDialog.BUTTON_NEGATIVE) } override fun onStart() { super.onStart() okButton.setOnClickListener { if (!viewEtStr1.text.toString().isNullOrBlank() && !viewEtStr2.text.toString().isNullOrBlank()) { myDialog.dismiss() } } cancelButton.setOnClickListener { // do something myDialog.dismiss() } } }