2016-05-06 3 views
0

У меня есть два фрагмента. Например, как фрагмент A и фрагмент B, По мере начала действия начинается фрагмент A. Теперь я вводил некоторый ввод, который должен начинаться с фрагмента B, он достигает в фрагменте B (выполняет его код), но он продолжает показывать фрагмент A. Что может быть неправильным? Любая помощь будет оценена по достоинству.Попытка заменить Фрагмент, но он продолжает показывать тот же фрагмент

homeScreenFragment = new HomeScreenFragment(); 
    getFragmentManager().beginTransaction().add(R.id.home_layout, homeScreenFragment, "Home Page"). 
      addToBackStack("Main Home Page").commit(); 

я запускаю этот фрагмент в MainActivity класса, теперь после ввода какой-нибудь текст в SearchView, AsyncTask запускается на выполнение и по его завершении я пытаюсь запустить еще один фрагмент (как показано в коде).

public void SearchMovieTaskComplete(MovieDetails[] details) { 
    if(details!=null){ 
     SearchResultFragment searchResultFragment= new SearchResultFragment(); 
     Bundle data=new Bundle(); 
     data.putSerializable("MovieDetail",details); 
     searchResultFragment.setArguments(data); 
     getFragmentManager().beginTransaction().replace(R.id.home_layout,searchResultFragment,"searchedResultCollected").commit(); 
    } 
} 
+0

показать нам код! – petey

+0

Просьба указать код, где u написал логику, чтобы показать фрагмент B –

+0

Я добавил несколько фрагментов кода, пожалуйста, взгляните на него. – abhishek

ответ

0

Это потому, что вы добавляете фрагмент каждый раз, когда вы это делаете (что я понял в вашем коде). Поэтому в основном вам нужно сохранить объект FragmentA и объект FragmentB в вашем Activity. Затем, основываясь на этом, вы заменяете вместо добавления. Когда вы добавляете, они просто перекрываются. Сделайте это:

getFragmentManager().beginTransaction().replace(R.id.home_layout, homeScreenFragment, "Home Page").addToBackStack("Main Home Page").commit(); 

d

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