#android
#Android
Вопрос:
Пытаюсь найти способ создать диалоговое окно оповещения, используя либо встроенную в Android, либо стороннюю библиотеку, которая позволяет мне создавать диалоговое окно оповещения с заголовком, описанием, 2 пользовательскими ответами (вариант A, вариант B) и флажок «не показывать это снова».
Я не вижу, чтобы иметь возможность делать все эти вещи, я могу делать их по-разному, но не все одновременно. Даже множество пользовательских диалоговых окон с предупреждениями, похоже, не могут этого сделать. У меня может быть текст и флажок, но только положительный ответ. Я проверил несколько, и все они кажутся ограниченными одинаково.
Возможно ли это?
Спасибо
Комментарии:
1. Взгляните на это руководство по диалогам: создание пользовательского макета
2. Спасибо, похоже, это решение.
Ответ №1:
Чтобы объединить текстовое сообщение и флажок, вы должны использовать пользовательский макет диалога.
Создайте новый файл ресурсов макета dialog_content.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingStart="16dp"
android:paddingEnd="16dp">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="16dp"
android:paddingBottom="8dp"
android:paddingStart="8dp"
android:paddingEnd="8dp"
android:text="@string/dialog_message" />
<CheckBox
android:id="@ id/dialog_content_check_box"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/do_not_show_again" />
</LinearLayout>
Используйте этот макет для создания диалогового окна оповещения в вашем действии / фрагменте
val dialogContentView = layoutInflater.inflate(R.layout.dialog_content, null)
val checkBox = dialogContentView.findViewById<CheckBox>(R.id.dialog_content_check_box)
checkBox.setOnCheckedChangeListener { buttonView, isChecked ->
if (isChecked) {
// CheckBox is checked
} else {
// CheckBox is unchecked
}
}
AlertDialog.Builder(context)
.setTitle(R.string.dialog_title)
.setView(dialogContentView)
.setNegativeButton(R.string.reject) { dialog, which ->
// Negative button clicked
}
.setPositiveButton(R.string.accept) { dialog, which ->
// Positive button clicked
}
.show()