如何解决微调器onItemSelected方法始终返回0位置
我面临着微调器的怪异问题。这是itemSelected的代码:
sp_payment_method.onItemSelectedListener = object : AdapterView.OnItemSelectedListener {
override fun onNothingSelected(p0: AdapterView<*>?) {}
override fun onItemSelected(
adapterView: AdapterView<*>?,view: View?,position: Int,id: Long
) {
viewModel.headerSelectedPaymentMethod = if (position > 0)
viewModel.paymentMethods[position - 1]
else
null
}
}
一切正常,直到我通过单击“主页”按钮将应用程序最小化为止。然后返回到应用程序,并在onResume中,尝试通过以下代码检索微调器选择的项目:
override fun onResume() {
super.onResume()
restoreStateOfHeader()
}
private fun restoreStateOfHeader() {
if (viewModel.headerSelectedPaymentMethod != null) {
val index = viewModel.paymentMethods.indexOf(viewModel.headerSelectedPaymentMethod!!)
if (index!=-1)
sp_payment_method.setSelection(index+1)
}
}
在调用ItemSelected中的setSelection()方法位置后,尽管我给出了任何数字,总是返回0。
任何想法都会受到赞赏。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。