Intereting Posts
Нарисуйте Rectangle Over ImageView для выделения, которое может быть уменьшено в андроиде Android SDK менеджер не показывает пакеты, которые будут установлены Что такое «requestCode», используемый для PendingIntent? ImageView getLayoutParams () возвращает null Как увеличить размер текущего сфокусированного объекта при повторном просмотре? Как заблокировать ориентацию во время выполнения Как дождаться окончания потока, прежде чем другой поток начнется в Java / Android? Как закрыть активность и вернуться к предыдущей деятельности в android Воспроизведение аудиофайла из каталога ресурсов «Требуется Gradle Version 2.10». Ошибка Html.ImageGetter Android – overdraw layout позволяет касаться LinearLayout Как масштабировать изображение в ImageView, чтобы сохранить соотношение сторон LinearLayout: layout_gravity = "bottom" не работает на горизонтальном LinearLayout Android Asyntask: используйте слабую ссылку для контекста, чтобы избежать поворота экрана устройства

Кнопка входа в панель действий Android

Я установил панель действий так, но ничего не происходит, когда я нажимаю кнопку «Домой вверх». Эти два параметра включены, поэтому не следует ли автоматически переходить к домашней активности?

ab.setHomeButtonEnabled(true); ab.setDisplayHomeAsUpEnabled(true); 

Панель действий

 @Override public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.menu, menu); final String[] activities; Resources res = getResources(); activities = res.getStringArray(R.array.activities); ActionBar ab = getActionBar(); ab.setHomeButtonEnabled(true); ab.setDisplayHomeAsUpEnabled(true); ab.setTitle(R.string.app_name); ab.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST); ab.show(); /** Create an array adapter to populate dropdownlist */ ArrayAdapter<String> adapter = new ArrayAdapter<String>(getBaseContext(), android.R.layout.simple_spinner_dropdown_item, activities); /** Setting dropdown items and item navigation listener for the actionbar */ getActionBar().setListNavigationCallbacks(adapter, navigationListener); /** Enabling dropdown list navigation for the action bar */ getActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_LIST); return true; } 

Solutions Collecting From Web of "Кнопка входа в панель действий Android"

Как говорили другие люди, поведение не происходит автоматически – вам нужно сказать, куда идти.

Тем не менее, мне нужно добавить еще один ответ, так как в текущих ответах все нарушаются принципы разработки Android – Back! = Home. См. Документацию

То, что вы действительно хотите сделать, – это нечто вроде этого:

 @Override public boolean onOptionsItemSelected(MenuItem menuItem) { switch (menuItem.getItemId()) { case android.R.id.home: Intent homeIntent = new Intent(this, HomeActivity.class); homeIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(homeIntent); } return (super.onOptionsItemSelected(menuItem)); } 

Что приведет вас к родительской активности, а не просто пройти через задний стек. Я также добавил Intent.Flag чтобы очистить задний стек, это полезно, когда вы переходите к домашнему действию и можете остановить обратный стек, получая путаницу, когда ваши пользователи используют кнопку «Вверх»

Вы также должны убедиться, что ваше приложение знает, что делать, когда оно нажато:

 @Override public boolean onOptionsItemSelected(MenuItem menuItem) { switch (menuItem.getItemId()) { case android.R.id.home: // ProjectsActivity is my 'home' activity super. onBackPressed(); return true; } return (super.onOptionsItemSelected(menuItem)); } 

Мы должны определить метаданные в нашей дочерней активности в файле AndroidManifast.xml, как указано в официальном документе :

 <application ... > ... <!-- The main/home activity (it has no parent activity) --> <activity android:name="com.example.myfirstapp.MainActivity" ...> ... </activity> <!-- A child of the main activity --> <activity android:name="com.example.myfirstapp.DisplayMessageActivity" android:label="@string/title_activity_display_message" android:parentActivityName="com.example.myfirstapp.MainActivity" > <!-- The meta-data element is needed for versions lower than 4.1 --> <meta-data android:name="android.support.PARENT_ACTIVITY" android:value="com.example.myfirstapp.MainActivity" /> </activity> 

Нет необходимости определять метаданные, если версия равна 4.1 или выше, и вам нужно включить домашнюю кнопку действия панели действий, как это было в вашем коде. Не нужно использовать код кнопки возврата, и он отлично работает с моим Android-приложением: Helper +

Вы должны определить, что здесь происходит:

 @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: onBackPressed(); } return true; } 

Добавьте эти строки в свой код:

 @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: System.out.println("Pressed Back Button"); break; default: return super.onOptionsItemSelected(item); } return false; }