2 years ago

#11942

test-img

Damn Vegetables

How to set onItemSelectedListener after the Spinner's inital value is set?

I want to set the event after the initial value has been set. I have tried to set the event handler onStart(), but it seems that the event is still called for the initial value set, which was don in onCreate(). Is there a way to set it after the initial value has been set?

class MainActivity : Activity()
{
  lateinit var spinner:Spinner;
  override fun onCreate(savedInstanceState: Bundle?)
  {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)
    spinner = findViewById<Spinner>(R.id.spinner);
    spinner.setSelection(2);
  }

  override fun onStart()
  {
    super.onStart()
    spinner.onItemSelectedListener = object : AdapterView.OnItemSelectedListener {
      override fun onItemSelected(parent: AdapterView<*>?, view: View?, position: Int, id: Long)
      {
        Log.d("stack", "onItemSelected($position)");
      }

      override fun onNothingSelected(parent: AdapterView<*>?)
      {
        Log.d("stack", "onNothingSelected");
      }
    }
  }
}

Output:

D/stack: onItemSelected(2)

android

android-spinner

0 Answers

Your Answer

Accepted video resources