Создать AlertDialog во фрагменте, используя Kotlin - PullRequest
1 голос
/ 24 мая 2019

В моем приложении для Android у меня есть наблюдатель, и в обратном вызове я хочу отобразить AlertDialog. Однако для метода Builder необходим контекст. Мне нужно получить контекст действия, в котором находится фрагмент, но я не уверен, как его получить:

viewModel.onError.observe(this, Observer {
    val mAlertDialog = AlertDialog.Builder(activity) // This needs the activity's context
    mAlertDialog.setMessage(it.toString())
    mAlertDialog.show()
})

Ответы [ 2 ]

1 голос
/ 24 мая 2019

Вы должны передать activity!! за фрагмент.

val dialogBuilder = AlertDialog.Builder(activity!!)
        dialogBuilder.setMessage(it.toString())
                // if the dialog is cancelable
                .setCancelable(false)
                .setPositiveButton("Ok", DialogInterface.OnClickListener {
                    dialog, id ->
                    dialog.dismiss()

                })

        val alert = dialogBuilder.create()
        alert.setTitle("Test")
        alert.show()
0 голосов
/ 24 мая 2019
viewModel.onError.observe(this, Observer {
    val mAlertDialog = AlertDialog.Builder(this@LoginActivity)
    mAlertDialog.setMessage(it.toString())
    mAlertDialog.show()
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...