Как установить несколько родительских действий для использования кнопки обратной связи 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().