2014-01-02 4 views
0

Фрагмент «A» вызывает фрагмент «B», который, в свою очередь, вызывает фрагмент «C».Удаление фрагмента и переход к предыдущему фрагменту

Теперь я хочу, чтобы на событии щелчка кнопки в фрагменте «C» фрагмент «C» должен быть удален, а фрагмент «B» должен быть показан. (Все фрагменты уже вставлены в заднюю часть. в этом.) Помогите!

ответ

1

Вы попробовали getSupportFragmentManager().popBackStackImmediate();? (Предположим, вы используете ABS).

1

Вы можете использовать popBackStack(); метод:

Но вы можете работать с фрагмента с помощью этого надлежащим образом:

private static final String STATE_URI = "state:uri"; 
private static final String STATE_FRAGMENT_TAG = "state:fragment_tag"; 
private Uri currentUri = YourFragment.ABOUT_URI; 
private String currentContentFragmentTag = null; 

на OnCreate() метод:

if (savedInstanceState != null) { 
     currentUri = Uri.parse(savedInstanceState.getString(STATE_URI)); 
     currentContentFragmentTag = savedInstanceState 
       .getString(STATE_FRAGMENT_TAG); 
    } 


    @Override 
protected void onSaveInstanceState(Bundle outState) { 
    outState.putString(STATE_URI, currentUri.toString()); 
    outState.putString(STATE_FRAGMENT_TAG, currentContentFragmentTag); 

    super.onSaveInstanceState(outState); 
} 


    @Override 
    public void onBackPressed() { 
    final Fragment currentFragment = getSupportFragmentManager() 
      .findFragmentByTag(currentContentFragmentTag); 
    if (currentFragment instanceof YourDesiredFragment) { 
     final YourDesiredFragment webFragment = (YourDesiredFragment) currentFragment; 
     if (webFragment.onBackPressed()) 
      return; 
    } 

    super.onBackPressed(); 
} 
Смежные вопросы