Как получить имя от пользователя и отобразить его в тосте, используя Kotlin? - PullRequest
0 голосов
/ 11 февраля 2020

Я создал специальный диалог, содержащий EditText, чтобы пользователь вводил свое имя. Когда пользователь нажимает «СОХРАНИТЬ», я хочу отобразить его имя в Toast. Я сделал этот код ниже, но приложение продолжает останавливаться, когда я нажимаю «Сохранить». Я хотел бы знать, где ошибка?

change_name.setOnClickListener {
    val builder = AlertDialog.Builder(this)
    val inflater =  LayoutInflater.from(this).inflate(R.layout.dialog_name,null,false)
    builder.setView(inflater)
    builder.setPositiveButton("SAVE") { dialog, id ->
        val name = entered_name.text.toString()
        Toast.makeText(this,name,Toast.LENGTH_LONG).show()
    }

    builder.create().show()
}

1 Ответ

0 голосов
/ 11 февраля 2020

Омар, добро пожаловать в сообщество SO .

В вашем коде вы создаете собственный диалог и вызываете диалоговое окно с положительными кнопками onClick Я уверен, что ваш в этой строке кода происходит сбой кода

val name = entered_name.text.toString()

Поскольку он не получил свойство syntheti c вашего EditText напрямую.

Вам нужно немного изменить свой код .

val builder = AlertDialog.Builder(this)
val inflater =  LayoutInflater.from(this).inflate(R.layout.dialog_name,null,false)
builder.setView(inflater)
val yourEditText :EditText = inflater.findViewById(R.id.entered_name)
builder.setPositiveButton("SAVE") { dialog, id ->
    val name = yourEditText.text.toString()
    Toast.makeText(this,name,Toast.LENGTH_LONG).show()
}

builder.create().show()
...