2016-06-16 5 views
1

私はフラグメントとして使用する4つのJavaクラスを持っています: `F1、F2、F3、F4。 私が一方から他方へswichしたい場合は、私はこのコードを使用します。Androidの現在のフラグメントを見つける

android.app.FragmentManager FM = getFragmentManager(); 
     FragmentTransaction FT = FM.beginTransaction(); 
     F1 FP = new F1(); 
     FT.add(R.id.where, FP,"F1"); 
     FT.commit(); 
     FM.executePendingTransactions(); 

私は以前にそれらのいずれかから戻ることができるようにしたい場合は、私は、次のようaddToBackStack(TAG)を追加します。

android.app.FragmentManager FM = getFragmentManager(); 
     FragmentTransaction FT = FM.beginTransaction(); 
     F1 FP = new F1(); 
     FT.add(R.id.where, FP,"F1"); 
     FT.addToBackStack("F1"); 
     FT.commit(); 
     FM.executePendingTransactions(); 

表示されている現在のフラグメントを変更するアクティビティは1つだけです。 私はそれから、現在の断片が表示されます。 これを書こうとしましたが、nowは常にnullです。

Fragment now=getSupportFragmentManager().findFragmentByTag("F1"); 
if(now!=null && now.isVisible()) { 
//some code for the current fragment 
} 

答えて

6

それはあなた

Fragment currentFragment = getFragmentManager().findFragmentById(R.id.where); 
if (currentFragment instanceof F1) { 
     //do your stuff here 
} 
に助けがある可能性がありますしてみてください
関連する問題