Во многих приложениях (Календарь, Диск, Play Store), когда вы нажимаете кнопку и вводите новое действие, значок в строке заголовка превращается в кнопку возврата, но для приложения, которое я создаю, этого не происходит. Как мне заставить этот значок вернуться на предыдущий экран?
android
user-interface
themes
titlebar
Нарисовался
источник
источник
Ответы:
Чтобы создать кнопку возврата в строке заголовка, нужно выполнить два простых шага:
Сначала сделайте значок приложения интерактивным, используя следующий код в действии, в строке заголовка которого вы хотите иметь кнопку возврата:
После того, как вы добавите приведенный выше код, вы увидите стрелку назад слева от значка приложения.
Во-вторых, после того, как вы сделаете это, вам все равно придется создать код, который будет использовать событие щелчка. Для этого имейте в виду, что когда вы действительно щелкаете значок приложения,
onOptionsItemSelected
вызывается метод. Итак, чтобы вернуться к предыдущему действию, добавьте этот метод к своему действию и поместитеIntent
в него код, который вернет вас к предыдущему действию. Например, предположим, что действие, к которому вы пытаетесь вернуться, называетсяMyActivity
. Чтобы вернуться к нему, напишите метод следующим образом:Это оно!
(В API разработчиков Android он рекомендует возиться с манифестом и добавлять что-то вроде
android:parentActivityName
. Но это, похоже, не работает для меня. Вышесказанное проще и надежнее.)И в вашей деятельности
источник
используйте этот код
после этого напишите этот код в
onOptionsItemSelected
методеисточник
getActionBar()
дает мне ноль; ты знаешь почему?Наконец-то мне удалось правильно добавить кнопку возврата на панель действий / панель инструментов
источник
1.- Добавьте активность в AndroidManifest.xml и убедитесь, что предоставили метаданные:
2.- Добавьте следующий код в метод onCreate действия:
3.- Переопределите onOptionsItemSelected и используйте статический метод NavUtils.navigateUpFromSameTask () для навигации по стеку.
источник
Если ваша активность расширяет Activity
Если ваше действие расширяет AppCompatActivity
Больше нечего делать, см. Действие Добавить
[НЕОБЯЗАТЕЛЬНО] Чтобы явно определить родительскую активность, измените файл Manifest.xml следующим образом:
См. Указание родительского действия
источник
Если ваша активность расширяется,
AppCompatActivity
вам необходимо переопределитьonSupportNavigateUp()
метод следующим образом:Обработайте свою логику в своем
onBackPressed()
методе и просто вызовите этот метод,onSupportNavigateUp()
чтобы кнопка «Назад» на телефоне и стрелка на панели инструментов делали то же самое.источник
прежде всего в функции onCreate добавьте следующую строку
а затем добавьте в код следующую функцию:
источник
Сначала вам нужно написать эти коды
Затем добавьте эту строку в манифест
источник
Если вы используете новую библиотеку поддержки 5.1 в студии Android, вы можете вместо этого использовать ее в своем AppCompatActivity
ура.
источник
Самый простой способ и лучшая практика, как объясняет Google здесь :
1. Добавьте родительский элемент для вашего childActivity в
AndroidManifest.xml
:2. активируйте кнопку возврата в вашем childActivity:
Сработало у меня, надеюсь, у вас тоже.
источник
По прошествии некоторого времени, которое я нашел, основная проблема в моем коде - это вариант темы. Ниже приводится правильный способ показать мне панель инструментов.
В файле AndroidManifest сначала вам нужно изменить стиль темы
то в вашей деятельности xml вам нужно вызвать свою собственную панель инструментов, например
Затем эта панель инструментов должна быть вызвана в вашем файле Java с помощью
И для панели инструментов, показывающей U, следует проверить значение null, чтобы избежать NullPointerException
Для домашней активности добавьте это
ИЛИ для желаемой деятельности назад
источник
Я видел столько сложных ответов, так что это мой код. Здесь работают. Вы можете добиться этого двумя способами.
1) Совместимость с Android Stardard
2) Используйте собственный значок
Если вы хотите использовать код в комментариях, вам просто нужно добавить этот файл в файл с именем ic_arrow_white_24dp.xml.
С этим кодом.
Надеюсь, это поможет некоторым людям здесь!
источник
Облегченная версия без использования,
ActionBarActivity
которая по-прежнему имеет те же действия:Использование: Поместите
new ToolbarConfigurer(this, (Toolbar) findViewById(R.id.my_awesome_toolbar), true);
вonCreate
.источник
Вам необходимо добавить указанный ниже код в файл манифеста. Найдите действие, в которое вы хотите добавить функцию стрелки назад. Если вы найдете тот, то штраф или создайте действие
Затем добавьте между ними следующие три строки кода.
И не забудьте добавить этот фрагмент кода в onCreate (); метод вашей конкретной деятельности, в котором вам нужна стрелка назад.
Вот как я решил проблему. Спасибо.
источник
В других ответах не упоминается, что вы также можете установить это в XML своего
Toolbar
виджета:app:navigationIcon="?attr/homeAsUpIndicator"
Например:
источник
Все, что вам нужно сделать в 2020 году:
(учитывая, что вы хотите вернуться в MainActivity)
источник
Если вы используете ActionBar, вы захотите прочитать эту документацию http://developer.android.com/reference/android/app/ActionBar.html#setDisplayHomeAsUpEnabled(boolean)
Затем вам нужно перезаписать метод onOptionsItemSelected (MenuItem) и найти событие android.R.id.home, которое должно появиться. Тогда вы знаете, что пользователь нажал эту кнопку возврата на панели действий.
источник
Это также можно сделать без кода, указав родительское действие в манифесте приложения. Если вам нужна кнопка возврата в Activity B, которая будет переходить к Activity A, просто добавьте Activity A в качестве родителя Activity B в манифесте.
источник
Для котлина:
источник
Мне нужно было смешать несколько ответов, чтобы получить правильный ответ, потому что в моем приложении есть 3 действия, которые можно вернуться и вернуться в любое время. Activity1> Activity2> Activity3. Когда я что-то делал в своем activity3, кнопка возврата правильно возвращалась к Activity2. Однако из Activity2, используя
finish()
, он поддерживал Activity3, а не Activity1. И я расширяю AppCompatActivity. Итак, мое решение было:на AndroidManifest.xml:
и, наконец, кнопка действия в моем меню (панель действий):
У
NavUtils.navigateUpFromSameTask(this);
меня сработало using, а неfinish()
.источник
Просто поделитесь тем, что помогло мне и может быть полезно для других. Хотя большинство ответов здесь правильные, при использовании
getActionBar().setDisplayHomeAsUpEnabled(true);
это не сработало для меня. Проблема, с которой я столкнулся, заключалась в том, что я пытался создать вторую Activity вручную, но есть более подробные сведения.Что действительно решило мою проблему, так это следование руководству разработчиков Android ( https://developer.android.com/training/basics/firstapp/starting-activity ) для создания второго Activity с использованием собственных инструментов Android Studio:
источник
Вы также можете просто вставить
onBackPressed()
свой слушатель onClick. Это заставляет вашу кнопку работать как кнопки «резервное копирование / вверх» по умолчанию в приложениях Android!источник
источник
Это работает для меня .. Предположим, есть два действия (Activityone, Activitytwo)
Внутри Activitytwo используют этот код
На Activityone
Это должно быть включено во второе действие внутри файла манифеста
И результат будет таким
источник
источник
Это работает для меня getSupportActionBar (). SetDisplayHomeAsUpEnabled (false); введите описание изображения здесь
источник