2016-05-06 7 views
0

2つのフラグメントがあります。フラグメントAおよびフラグメントBのような例では、アクティビティが開始すると、フラグメントAが開始されます。今私はフラグメントBを開始する必要がある入力を入力すると、フラグメントB(コードを実行する)に到達しますが、フラグメントAを表示し続けます。 何がうまくいかない可能性がありますか?どんな助けもありがとう。フラグメントを置き換えようとしても、同じフラグメントを表示し続ける

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

私は今Searchviewにテキストを入力した後、AsyncTaskが実行されます、MainActivityクラスでこのフラグメントを実行し、その終了時に、私は(コードに示すように)別のフラグメントを実行してみてください。

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

フラグメントBを表示するロジックを記述したコードを入力してください –

+0

私はいくつかのコードスニペットを追加しました。 – abhishek

答えて

0

これは、コードを理解するために、そのたびにフラグメントを追加するためです。だから基本的にはオブジェクトとFragmentBオブジェクトをActivityに保存することです。その後、追加する代わりに置き換えます。追加すると、重複して表示されます。これを行う:

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

D

関連する問題