0

I have the following code for spinner on the actionBar:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.transaction_filter_menu, menu);

    MenuItem item = menu.findItem(R.id.spinner);
    Spinner spinner = (Spinner) MenuItemCompat.getActionView(item);

    ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,
            R.array.actions, android.R.layout.simple_spinner_item);
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spinner.setAdapter(adapter);
    spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
            Logger.d("onItemSelected "+position);
            //mTranactionsController.filterData();
        }

        @Override
        public void onNothingSelected(AdapterView<?> parent) {
        }
    });
    return true;
}

Problem is that event onItemSelected is executed after onCreate when no item is selected. First item is selected by default.

How can i deny to this behaviour please?

Many thanks for any advice.

redrom
  • 11,502
  • 31
  • 157
  • 264

2 Answers2

0

According to this answer here

put spinner.setSelection(0,false) before setAdapter()

Community
  • 1
  • 1
WenChao
  • 3,586
  • 6
  • 32
  • 46
0

I think this answer will help you out. You can then also add a description like "Select one"

Community
  • 1
  • 1
Mario Huizinga
  • 780
  • 7
  • 14