首页 > 解决方案 > 如果在 Android 对话框中选择了相同的选项,如何什么都不做?

问题描述

我有以下对话框:

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()

当我传递1setSingleChoiceItems. 每次单击三个选项之一时,我都会position打印出来。有没有什么方法可以让我只有在选项改变的情况下才能获得该日志语句?如果仍然选择相同的选项,那么我不需要日志语句?谢谢

标签: javaandroidkotlinandroid-dialog

解决方案


假设您不更改默认选定值,只需进行条件检查以确保位置不等于1. 如果它更动态,则存储当前位置并进行比较:

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()

推荐阅读