I trying to get access to the variable from the callback.
var dialog = showDialog(View.OnClickListener { dialog.dismiss() })
But dialog is shown as error with message 'Unresolved reference: dialog'
This is whole code fow showing full picture:
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
buttonOne.setOnClickListener {
showDialog(View.OnClickListener { Toast.makeText(this@MainActivity, "Button one clicked", Toast.LENGTH_LONG).show() })
}
buttonTwo.setOnClickListener {
var dialog = showDialog(View.OnClickListener { dialog.dismiss() })
}
}
private fun showDialog(clickListener: View.OnClickListener): Dialog {
val alertDialog = AlertDialog.Builder(this@MainActivity).create()
alertDialog.setTitle("This is title")
alertDialog.setMessage("This is message")
alertDialog.setButton(AlertDialog.BUTTON_NEUTRAL, "OK") { _, _ -> clickListener.onClick(null) }
alertDialog.show()
return alertDialog
}
}
Yes I can call to dismiss dialog
alertDialog.dismiss()
inside showDialog method. But click behaviour can be different in different cases.
So my question: how to get access to the variable from callback?