2014-02-25 3 views
0

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

Мне интересно, как сделать обратную кнопку кнопки панели действий действующей в качестве кнопки системы назад. Итак, когда отображается панель действий, и есть значок приложения в левом верхнем углу с помощью стрелки назад, как сделать так, чтобы это действовало как кнопка системы (время от времени)? Вот пример кнопки, о которой я говорю.

enter image description here

ответ

1

Так что для того, чтобы сделать это, вы должны на вашей установке activitys UI называют это.

getSupportActionBar().setDisplayHomeAsUpEnabled(true); 
    getSupportActionBar().setHomeButtonEnabled(true); 

, а затем, если вы не хотите текст, как этот пример вам нужно вызвать

getSupportActionBar().setDisplayShowTitleEnabled(false); 

Тогда в вашей деятельности вам необходимо создать метод, который выглядит следующим образом.

public boolean onMenuItemSelected(int featureId, MenuItem item) { 
     int theId = item.getItemId(); 
     if (theId == android.R.id.home) { 
      callCleanupActivityMethod(); 
      finish(); 
     } 
     return true; 
    } 

Это обратный вызов слушатель, который сразу же положить на активности, когда панель действий была поставлена ​​на деятельности. Затем эта функция захватывает идентификатор элемента, который был нажат, проверяет, была ли это домашней кнопкой, затем вам нужно очистить все объекты или процессы, которые необходимо остановить, а затем завершить вызов(), что приведет к завершению работы. Наконец верните true.

При взгляде на комментарии вы, вероятно, можете видеть, что член предложил просто вызвать onBackPressed, что может работать для некоторых приложений, но не для всех, следовательно, для завершения вызова. Сначала я рекомендую попробовать его.

Приветствия

+2

Это выглядит в основном хорошо, как о смене примера назвать onBackPressed() (который будет выполнять намерение первоначального вопроса - в отличие от конца()). – Booger

+0

Это то, что я изначально пытался, но может привести к сбоям в вашем приложении. Он может работать для некоторых приложений, но не для всех. Следовательно, финишный звонок. – Tony

+0

, к сожалению, это тоже не отвечает на вопрос – maestromusica

Смежные вопросы