Я использую ActionBar с выпадающим меню, и onNavigationItemSelected()
вызывается, как только создается действие, поэтому вызывается первый элемент. Первым пунктом моего выпадающего меню является Home, то же действие, что и нажатие значка приложения с android.R.id.home
, поэтому при запуске приложения он вызывает себя. Чтобы избежать этого случая у меня есть этот код:onNavigationItemВыбран в ActionBar вызывается при запуске, как его избежать?
if(this.getClass() != FrecView.class){ //if i am not currently on the Activity
Intent frec = new Intent(this, FrecView.class);
frec.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(frec);
}
Но у меня есть ActionBar на все мои действия так каждый раз, когда любая деятельность начинается его называет себя навсегда, так что я должен поставить этот код для каждого вида деятельности. Что происходит? Как я могу предотвратить это?
Но если вы не разместите дом там, он будет называть один из моих занятий, вы говорите, что он не предназначен для вызова мероприятий, поэтому мне нужно будет поместить все на значки ActionBar? – Andres
@ Andres: «Но если вы не вернетесь туда, это вызовет одно из моих действий» - нет, * вы * будете «называть одну из [ваших] действий». У 'Spinner' всегда есть выбор, независимо от того, какой вы выбрали или по первой записи по умолчанию. Если вы решите начать работу над этим первым выбором, это ваша собственная ошибка, потому что вы тот, кто написал этот код. – CommonsWare
«это твоя собственная ошибка» ... Может быть, это не предназначено для того, чтобы быть меню, но оно выглядит и выглядит точно так же, как одно. Есть возможность для этой ошибки. Кроме того, несколько ресурсов, включая SO, предлагают этот подход неправильно: http://stackoverflow.com/questions/13958912/how-to-implement-a-drop-down-navigation-action-bar-in-android-after-youve-added – Alex