Это очень легко, и вы делаете свою вещь сложной.Если вы хотите, чтобы выбранный элемент позиции из Spinner.Сделай это так.
Это XML вашей активности.
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<Spinner
android:layout_width="395dp"
android:layout_height="wrap_content" android:layout_marginTop="16dp"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintStart_toStartOf="parent"
android:layout_marginLeft="16dp" android:layout_marginStart="16dp" android:id="@+id/spinner"/>
</RelativeLayout>
А потом в вашем коде.
class MainActivity : AppCompatActivity() {
var x: Int = 0
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val spinnerItems = arrayOf("Item1", "Item2", "Item3", "Item4", "Item5", "Item6")
spinner.adapter = ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, spinnerItems)
spinner.onItemSelectedListener = object: AdapterView.OnItemSelectedListener{
override fun onNothingSelected(parent: AdapterView<*>?) {
}
override fun onItemSelected(parent: AdapterView<*>?, view: View?, position: Int, id: Long) {
x = position
Toast.makeText(applicationContext, position.toString(), Toast.LENGTH_SHORT).show()
}
}
}
}
Параметр position расскажет вам о позиции.И вам не нужно использовать findViewById()
при работе с Kotlin.Так что код прост и лаконичен.
Позиция начинается с 0, поэтому вам может потребоваться добавить 1 в переменную позиции (в зависимости от ваших потребностей).
Надеюсь, это поможет.