Don't treat a spinner like a button; buttons have onClick events. Spinners have onItemSelected events.
You should capture the Spinner onItemSelected event as follows:
import android.widget.AdapterView; Spinner productname_spinner =(Spinner) findViewById(R.id.your_spinner); productname_spinner.setOnItemSelectedListener( new AdapterView.OnItemSelectedListener() { public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) { Object item = parent.getItemAtPosition(pos); System.out.println(item.toString());
Kotlin looks like the following:
mySpinner.onItemSelectedListener = object: OnItemSelectedListener { override fun onNothingSelected(parent: AdapterView<*>?) { // Do nothing } override fun onItemSelected(parent: AdapterView<*>?, view: View?, position: Int, id: Long) { val selection = parent?.getItemAtPosition(position) viewModel.updateSelection(selection as String) } }
Eric Leschinski
source share