Использование CustomLayout в AlertDialog - PullRequest
2 голосов
/ 06 мая 2020

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

 val alert = AlertDialog.Builder(activity)
    val layout = R.layout.alert_view
    val customLayout: View = layoutInflater.inflate(layout, null)
    alert.setView(customLayout)
    var etCourse1 = view?.findViewById<EditText>(R.id.etCourse1)
    var etCourse2 = view?.findViewById<EditText>(R.id.etCourse2)
    alert.setIcon(R.drawable.ic_warning_black_24dp)

    alert.setPositiveButton("Confirm")
    {
            dialog, _ ->
        tempEditTextValue = etCourse1?.text.toString() //editText.text.toString()
        tempEditTextValue2 = etCourse2?.text.toString()
        if(tempEditTextValue.isEmpty())
        {
            Toast.makeText(activity,"TextField is Empty", Toast.LENGTH_SHORT).show()
            dialog.dismiss()
        }
        else
        {

            //FunctionHere
        }

    }
    alert.setNegativeButton("Cancel")
    {
            dialog, _ ->
        dialog.dismiss()
    }
    alert.setCancelable(false)


    alert.show()

Кроме того, могу ли я использовать настраиваемые кнопки в качестве кнопок подтверждения и отмены? Спасибо!

1 Ответ

0 голосов
/ 06 мая 2020

Мое представление customLayout, но я пытаюсь использовать представление, чтобы получить этот EditText.

EditText должен быть похож на:

    var etCourse1 = customLayout?.findViewById<EditText>(R.id.etCourse1)
    var etCourse2 = customLayout?.findViewById<EditText>(R.id.etCourse2)
...