java - 如果在 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()
当我传递1
给setSingleChoiceItems
. 每次单击三个选项之一时,我都会position
打印出来。有没有什么方法可以让我只有在选项改变的情况下才能获得该日志语句?如果仍然选择相同的选项,那么我不需要日志语句?谢谢
解决方案
假设您不更改默认选定值,只需进行条件检查以确保位置不等于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()
推荐阅读
- python-3.x - 如何将已声明的字符串作为变量访问
- docker - 在 docker 中为 Windows 和 Linux 选择通用绝对路径
- java - Java 类设计 - 最佳方法的建议。类扩展抽象类并实现接口
- c - 函数内的 Realloc - 损坏的大小与 prev_size
- python - 使用 **kwds 时避免 pandas 改变绘图颜色
- java - Lombok 和 Spock:@RequiredArgsConstructor 不会隐藏具有接口类型的字段的默认无参数构造函数
- sql - 如何解决 System.Data.DataRowView' 不包含名称为 'date' 的属性错误?
- postgresql - 如何每 5 分钟将 PostgreSQL 流复制文件复制到某个 HDD 驱动器
- c# - SimpleInjector 在使用泛型接口时注入一个空集合
- javascript - 导致组件中未定义行为的路由