Закрытие диалога Anko в onClickListener

Я хотел бы закрыть диалог Anko при нажатии кнопки, определенной в моем customLayout

val dialog = alert {
   val view = layoutInflater.inflate(R.layout.match_stats, null)
   val closeButton = view.findViewById<ImageButton>(R.id.closeButton)
   closeButton.setOnClickListener { _ -> dialog.dismiss()}
   customView = view
}
dialog.show()

Я попробовал приведенный выше код, к сожалению, я не могу получить ссылку на dialog в своем файле onClickListener. У вас есть идеи, как это решить?


person qbait    schedule 22.10.2018    source источник


Ответы (1)


Вы можете объявить переменную раньше и назначить null:

var dialog: DialogInterface? = null
dialog = alert {
   val view = layoutInflater.inflate(R.layout.match_stats, null)
   val closeButton = view.findViewById<ImageButton>(R.id.closeButton)
   closeButton.setOnClickListener { _ -> dialog?.dismiss()}
   customView = view
}.show()

Конечно, теперь ваша переменная dialog является изменяемой и необязательной.

person Dima S    schedule 22.10.2018
comment
Изменяемый и необязательный отстой, но лучшего решения я не нашел. Спасибо! - person qbait; 23.10.2018