Intereting Posts
Font awesome в представлении списка андроидов не работает Рельефные края формы изображения, отображающие глубину в андроиде Найти маршрут с андроидами API Карт Google Android Реализация чата Bubble в ListView Тип R уже определена ошибка Динамическая высота для строки ListView в android Как я могу использовать SensorManager.getOrientation для управления наклоном, например «My Paper Plane»? Как нарисовать небольшое изображение маркера и сохранить его положение на моем изображении карты CUSTOM? – Android Есть ли безопасный способ управления ключами API? Android – Как загрузить приложение HelloWorld на свой телефон? Перемещение любого RelativeLayout пальцем (без изменения параметров макета) OpenGL на Android: любые конфликты при вызове функций OpenGL как на Java, так и на C ++? Разница между onSingleTapConfirmed и onSingleTapUp Ошибка AdMob «Недостаточно места для показа рекламы» Как применить угловой радиус к LinearLayout

Как предотвратить 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); } 

Вам не нужен следующий код внутри 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);