Как установить несколько родительских действий для использования кнопки обратной связи Android
У меня есть приложение, которое несколько раз вызывает действие из разных действий. Итак, я пытаюсь реализовать "кнопку возврата" в панели действий для этого действия. Для этого я использую:
switch (item.getItemId()) {
case android.R.id.home:
NavUtils.navigateUpFromSameTask(this);
return true;
default:
return super.onOptionsItemSelected(item);
}
а также:
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="view.TweetsIndividuoActivity" />
Проблема в том, что я не могу установить родительскую активность для своего манифеста Android, потому что я не знаю, кто является родителем этого действия.
Каково решение?
благодаря
Ответы
Ответ 1
Это проще, чем вы думаете.
switch (item.getItemId()) {
case android.R.id.home:
finish();
return true;
default:
return super.onOptionsItemSelected(item);
}
Метод finish()
уничтожит вашу активность и покажет ту, которая ее начала. Это то, что ты хочешь, если я понял тебя правильно.
Ваше текущее решение предназначено для случаев, когда вы хотите вернуться к одному и тому же родителю каждый раз, например, в приложении Gmail. Когда вы открываете сообщение электронной почты из уведомлений, а затем нажмите кнопку возврата назад, он не будет перемещаться по экрану HOME, но отобразит ваш почтовый ящик Gmail.
Ответ 2
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == android.R.id.home) {
onBackPressed();
return true;
}
return super.onOptionsItemSelected(item);
}
Вы всегда будете возвращаться к активности, с которой вы начали новую деятельность.
Не нужно использовать приведенный ниже код.
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="view.TweetsIndividuoActivity" />
Ответ 3
Я тоже новичок в Android, но я решил эту проблему, вызвав вторую активность, используя "startActivityForResult (намерение, 1)" вместо "startActivity (intent)". Я думаю, что это делает его родительским/дочерним отношением, а не дочерней деятельностью...?
Мне не нужно было использовать onOptionsItemSelected() или finish().