как исправить onOptionsItemSelected при преобразовании activity во фрагмент

#android

#Android

Вопрос:

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

какие изменения я должен внести в этот фрагмент при его возврате к предыдущей активности и при возврате к предыдущему фрагменту?

 @Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case R.id.returnHome:

            Intent i= new Intent(getActivity().getApplicationContext(), WoundNavigation.class);
            i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP| Intent.FLAG_ACTIVITY_SINGLE_TOP);
            startActivity(i);
            return true;
        case android.R.id.home:
            getActivity().onBackPressed();
            return true;
        default:
            return super.onOptionsItemSelected(item);
    }
}
  

Комментарии:

1. Возможно, вы добавляете фрагмент в backstack, если я вас понимаю. В противном случае дайте еще несколько объяснений, чтобы помочь нам и себе.

Ответ №1:

Попробуйте так

напишите это в методе onCreateView()

 setHasOptionsMenu(true)
  

и внесите эти изменения

  @Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case R.id.returnHome:

            Intent i= new Intent(getActivity(), WoundNavigation.class);
            i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP| Intent.FLAG_ACTIVITY_SINGLE_TOP);
            startActivity(i);
            return true;
        case android.R.id.home:
            getActivity().onBackPressed();
            return true;
        default:
            return super.onOptionsItemSelected(item);
    }
}
  

Это может помочь. Если это также не работает, вам необходимо управлять обратным стеком фрагмента в activity, откуда вы вызываете свой фрагмент

Комментарии:

1. теперь это работает, когда я хочу вернуться от первого фрагмента текущей активности к предыдущей активности. что мне делать, когда я хочу вернуться от второго фрагмента к первому фрагменту текущей активности?