Кнопка «Назад» на панели действий

Я пытаюсь отобразить Back button на Action bar чтобы переместить предыдущую страницу / действие или на главную страницу (первое открытие). И я не могу этого сделать.

мой код.

 ActionBar actionBar = getActionBar(); actionBar.setHomeButtonEnabled(true); 

код находится в onCreate .

хорошо, это просто, чтобы показать кнопку

 actionBar.setDisplayHomeAsUpEnabled(true); 

и затем вы можете настроить обратное событие в onOptionsItemSelected

 case android.R.id.home: this.finish(); return true; 

Я думаю, что onSupportNavigateUp() лучший и самый простой способ сделать это, проверьте код ниже.

если вы хотите это программно. Добавьте эту строку в onCreate()

 getSupportActionBar().setDisplayHomeAsUpEnabled(true); 

Примечание. Убедитесь, что Actionbar не равен null.

И переопределить этот метод

 @Override public boolean onSupportNavigateUp(){ finish(); return true; } 

это оно
ИЛИ Не программно вы можете добавить мета в действие в файле манифеста, как

  

Изменить: если вы не используете AppCompat Activity, тогда не используйте слово support , вы можете использовать

 getActionBar().setDisplayHomeAsUpEnabled(true); // In `OnCreate();` @Override public boolean onNavigateUp(){ finish(); return true; } 

Спасибо @atariguy за комментарий.

Магия происходит в onOptionsItemSelected .

 @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: // app icon in action bar clicked; go home Intent intent = new Intent(this, HomeActivity.class); intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(intent); return true; default: return super.onOptionsItemSelected(item); } } 

Официальное решение

Добавьте эти два fragmentа кода в SubActivity

 @Override public void onCreate(Bundle savedInstanceState) { ... getActionBar().setDisplayHomeAsUpEnabled(true); } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { // Respond to the action bar's Up/Home button case android.R.id.home: NavUtils.navigateUpFromSameTask(this); return true; } return super.onOptionsItemSelected(item); } 

добавьте метаданные и родительскую активность в манифест для поддержки более низкого sdk.

   ...   ...        

Ссылка здесь: http://developer.android.com/training/implementing-navigation/ancestral.html

Добавьте эти строки в onCreate ()

 android.support.v7.app.ActionBar actionBar = getSupportActionBar(); actionBar.setHomeButtonEnabled(true); actionBar.setDisplayHomeAsUpEnabled(true); 

и в onOptionItemSelected

 @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: //Write your logic here this.finish(); return true; default: return super.onOptionsItemSelected(item); } } 

Надеюсь, что это поможет вам..!

Попробуйте этот код, он учитывает его только в том случае, если вам нужна кнопка «Назад».

 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //YOUR CODE getSupportActionBar().setDisplayHomeAsUpEnabled(true); //YOUR CODE } @Override public boolean onOptionsItemSelected(MenuItem item) { onBackPressed(); return true; } 

В методе onCreate добавьте:

 getSupportActionBar().setDisplayHomeAsUpEnabled(true); 

Определяя в AndroidManifest.xml родительскую активность (действие, которое будет вызываться после нажатия кнопки «Назад» на панели действий):

В определении в манифесте добавьте строку:

 android:parentActivityName="com.example.activities.MyParentActivity" 

Я знаю, что немного опоздал, но смог исправить эту проблему, следуя непосредственно документам .

Добавьте тег метаданных в AndroidManifest.xml (так что система знает)

     

Затем включите кнопку «Назад» (вверх) в MainActivity

  @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_my_child); // my_child_toolbar is defined in the layout file Toolbar myChildToolbar = (Toolbar) findViewById(R.id.my_child_toolbar); setSupportActionBar(myChildToolbar); // Get a support ActionBar corresponding to this toolbar ActionBar ab = getSupportActionBar(); // Enable the Up button ab.setDisplayHomeAsUpEnabled(true); } 

И вы все настроитесь!

Источник: Документация разработчика для Android

Я знаю, что это много полезных решений, но на этот раз я прочитал эту статью (текущий Android Studio 2.1.2 с sdk 23), какой-то метод выше не работает.

Ниже мое решение для суб-активности – MapsActivity

Во-первых, вам нужно добавить parentActivity в

AndroidManifest.xml

как это :

  ...   ...        

Во-вторых, убедитесь, что ваша суб-активность расширяет AppCompatActivity , а не FragmentActivity.

В-третьих, переопределить onOptionsItemSelected()

 @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: // app icon action bar is clicked; go to parent activity this.finish(); return true; case R.id.action_settings: return true; default: return super.onOptionsItemSelected(item); } } 

Надеюсь, это поможет!

Для этого есть всего два шага,

Шаг 1. Перейдите в AndroidManifest.xml и добавьте этот параметр в android:parentActivityName=".home.HomeActivity"

Пример:

  

Шаг 2: В ActivityDetail добавьте action для предыдущей страницы / активности

Пример:

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

в onCreate метод write-

 Toolbar toolbar = findViewById(R.id.tool); setSupportActionBar(toolbar); if (getSupportActionBar() != null) { getSupportActionBar().setDisplayHomeAsUpEnabled(true); getSupportActionBar().setDisplayShowHomeEnabled(true); } } @Override public boolean onSupportNavigateUp() { onBackPressed(); return true; } @Override public void onBackPressed() { super.onBackPressed(); startActivity(new Intent(ActivityOne.this, ActivityTwo.class)); finish(); } 

и это xml-файл,

  

и в styles.xml измените его на

 Theme.AppCompat.Light.NoActionBar 

это все, что мы должны делать.

Попробуйте это, в вашем onCreate ()

  getActionBar().setHomeButtonEnabled(true); getActionBar().setDisplayHomeAsUpEnabled(true); 

И для clickevent,

 @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: // app icon in action bar clicked; goto parent activity. this.finish(); return true; default: return super.onOptionsItemSelected(item); } } 

Я решил таким образом

 @Override public boolean onOptionsItemSelected(MenuItem item){ switch (item.getItemId()) { case android.R.id.home: onBackPressed(); finish(); return true; default: return super.onOptionsItemSelected(item); } } @Override public void onBackPressed(){ Intent backMainTest = new Intent(this,MainTest.class); startActivity(backMainTest); finish(); } 

мой рабочий код для возврата экрана.

 @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: Toast.makeText(getApplicationContext(), "Home Clicked", Toast.LENGTH_LONG).show(); // go to previous activity onBackPressed(); return true; } return super.onOptionsItemSelected(item); } 
  public void initToolbar(){ //this set back button getSupportActionBar().setDisplayHomeAsUpEnabled(true); //this is set custom image to back button getSupportActionBar().setHomeAsUpIndicator(R.drawable.back_btn_image); } //this method call when you press back button @Override public boolean onSupportNavigateUp(){ finish(); return true; } 
 ActionBar actionBar=getActionBar(); actionBar.setDisplayHomeAsUpEnabled(true); @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: onBackPressed(); return true; } return super.onOptionsItemSelected(item); } 
  • Android - NullPointerException в SearchView в панели действий
  • Android - кнопка переключения ActionBar Back на навигационную кнопку
  • Как настроить цвет и текст режима действия?
  • Как изменить цвет фона в меню опций Action Bar в Android 4.2?
  • Удалить панель действий по умолчанию для Android по умолчанию
  • Как скрыть значок действия share (который используется больше всего) рядом с поставщиком акций?
  • Как изменить цвет фона ActionBar ActionBarActivity с помощью XML?
  • Как я могу изменить действия панели действий динамически?
  • Панель действий Кнопка «Назад» не работает
  • Заполнение между иконкой и заголовком ActionBar
  • getActionBar возвращает null
  • Давайте будем гением компьютера.