问题描述
在开发中遇到当进入页面,给予Spinner一个默认值的时候,会触发我们的onItemSelected监听事件。由于我的设计要求是在spinner中选中一个item时会关闭当前页面。导致我一打开页面就关闭了,好气哟。
解决方案
kotlin代码
首先,我们新建一个变量,这个变量就是你需要初始化的值
var defaultValue = 2
然后,初始化Spinner默认值
spinner.setSelection(defaultValue)
接着,写监听
spinner.onItemSelectedListener = object : AdapterView.OnItemSelectedListener{
override fun onNothingSelected(p0: AdapterView<*>?) {}
override fun onItemSelected(p0: AdapterView<*>?, p1: View?, p2: Int, p3: Long) {
// 如果选中目标是你的初始化的值,就不管它,并且将初始化值搞成永远不会碰上的值
if (p2 == defaultValue) {
defaultValue = -1
return
}
// todo 执行你真正的业务
}
}