【发布时间】:2021-01-04 00:31:13
【问题描述】:
我正在使用AndroidStudio 4.1.1 和kotlin
我在尝试获取微调器视图/项目中选定项目的值时遇到问题。我的第一次尝试,很多线程都说要这样做,是:
val spinner = findViewById<Spinner>(R.id.wMuscleGroup) as Spinner
val selectedText = spinner.getSelectedItem().toString()
这对我不起作用。 selectedText 在 Toast 或 println 中没有显示任何内容
我也试过这个,我也发现了很多线程:
val spinner = findViewById<Spinner>(R.id.wMuscleGroup) as Spinner
if (spinner != null) {
val adapter = ArrayAdapter( this, android.R.layout.simple_spinner_item, muscleGroups )
spinner.adapter = adapter
spinner.onItemSelectedListener = object : AdapterView.OnItemSelectedListener {
override fun onItemSelected(parent: AdapterView<*>, view: View, position: Int, id: Long) {
val selectedText = muscleGroups[position]
println("Muscle Group selected is $selectedText") // <-- this works
}
override fun onNothingSelected(parent: AdapterView<*>) {
// write code to perform some action
}
}
}
// selectedText is not seen here:
println("Muscle Group selected is $selectedText")
这可行,我可以在我的 println 中看到 selectedString,在块内的 onItemSelected 函数中。但是,如何让这个值在这段代码之外被看到?我需要在类对象和数据库写入中使用这个值。我尝试在if (spinner != null) 之外/上方声明selectedString,但这似乎也不起作用。
感谢您的帮助。
【问题讨论】:
标签: android kotlin android-spinner