Как предотвратить onNavigationItemSelected пожары при запуске этой деятельности?

Я хочу использовать spinner в панели действий в моей деятельности ниже, это onCreateOptionsMenu: я использую этот учебник для достижения такого подхода. Моя проблема заключается в том, когда активность обедает, срабатывает метод onNavigationItemSelected и запускается код в запуске switch / case и активность, которую я установил для позиции 0. Что я должен сделать, чтобы предотвратить запуск переключателя / случая, когда активность обедает?

@Override public boolean onCreateOptionsMenu(Menu menu) { getSupportMenuInflater().inflate(R.menu.main, menu); SpinnerAdapter mSpinnerAdapter; if(Build.VERSION.SDK_INT <= 10) { mSpinnerAdapter = ArrayAdapter.createFromResource(this, R.array.spinner_data,android.R.layout.simple_spinner_item); } else { mSpinnerAdapter = ArrayAdapter.createFromResource(this, R.array.spinner_data,android.R.layout.simple_spinner_dropdown_item); } ActionBar.OnNavigationListener mOnNavigationListener = new ActionBar.OnNavigationListener() { @Override public boolean onNavigationItemSelected(int position, long itemId) { switch (position) { case 0: Intent searchIntent = new Intent(ActivitySearchBusiness.this, ActivityFindBusinessCity.class); startActivity(searchIntent); break; case 2: Intent dealsIntent = new Intent(ActivitySearchBusiness.this, ActivityDeals.class); startActivity(dealsIntent); break; case 3: Intent eventsIntent = new Intent(ActivitySearchBusiness.this, ActivityEvents.class); startActivity(eventsIntent); break; } return true; } }; actionBar.setListNavigationCallbacks(mSpinnerAdapter, return super.onCreateOptionsMenu(menu); } 

Solutions Collecting From Web of "Как предотвратить onNavigationItemSelected пожары при запуске этой деятельности?"

Вам не нужен следующий код внутри onCreateOptionsMenu(Menu) :

…. ….

Удалите его и поместите в метод onCreate(Bundle) вашей активности.

Редактировать:

Объявить глобальную boolean переменную:

 boolean initializing = true; 

Поместите следующий код внутри onCreate(Bundle) :

 SpinnerAdapter mSpinnerAdapter; if(Build.VERSION.SDK_INT <= 10) { mSpinnerAdapter = ArrayAdapter.createFromResource(this, R.array.spinner_data,android.R.layout.simple_spinner_item); } else { mSpinnerAdapter = ArrayAdapter.createFromResource(this, R.array.spinner_data,android.R.layout.simple_spinner_dropdown_item); } ActionBar.OnNavigationListener mOnNavigationListener = new ActionBar.OnNavigationListener() { @Override public boolean onNavigationItemSelected(int position, long itemId) { if (initializing) { initializing = false; } else { switch (position) { case 0: Intent searchIntent = new Intent(ActivitySearchBusiness.this, ActivityFindBusinessCity.class); startActivity(searchIntent); break; case 2: Intent dealsIntent = new Intent(ActivitySearchBusiness.this, ActivityDeals.class); startActivity(dealsIntent); break; case 3: Intent eventsIntent = new Intent(ActivitySearchBusiness.this, ActivityEvents.class); startActivity(eventsIntent); break; } } return true; } }; //actionBar.setListNavigationCallbacks(mSpinnerAdapter, mOnNavigationListener); getActionBar().setListNavigationCallbacks(mSpinnerAdapter, mOnNavigationListener);