Как ничего не делать, если в диалоговом окне Android выбрана такая же опция? - PullRequest
0 голосов
/ 03 августа 2020

У меня есть следующий диалог:

val alertDialog: AlertDialog.Builder = AlertDialog.Builder(context)
val options = arrayOf("Red", "Blue", "Green")
alertDialog.setTitle("Select a color")
alertDialog.setSingleChoiceItems(options, 1) { dialog, position ->
    logErrorMessage("position: " + position)
    dialog.dismiss()
}
val alert: AlertDialog = alertDialog.create()
alert.show()

По умолчанию выбрано значение «Синий», когда я передаю 1 в setSingleChoiceItems. Каждый раз, когда я нажимаю на одну из трех опций, я получаю position. Могу ли я получить этот оператор журнала, только если параметр будет изменен? Если тот же вариант остается выбранным, то я не хочу никакой записи журнала? Спасибо

1 Ответ

2 голосов
/ 03 августа 2020

Предполагая, что вы не изменяете выбранное значение по умолчанию, просто выполните условную проверку, что позиция не равна 1. Если это больше динамики c, сохраните текущую позицию и сравните ее вместо:

val alertDialog: AlertDialog.Builder = AlertDialog.Builder(context)
val options = arrayOf("Red", "Blue", "Green")
alertDialog.setTitle("Select a color")
alertDialog.setSingleChoiceItems(options, 1) { dialog, position ->
    if(position != 1) {
         logErrorMessage("position: " + position)
    }
    dialog.dismiss()
}
val alert: AlertDialog = alertDialog.create()
alert.show()
...