フラグメントのあるアクティビティがあります。
XML:
<fragment Android:name="com.example.androidcalculator.ResultFragment"
Android:id="@+id/result_fragment"
Android:layout_weight="1"
Android:layout_width="match_parent"
Android:layout_height="wrap_content" />
そして、ActivityのメソッドからResultFragmentからメソッドを呼び出したいのですが、getSupportFragmentManagerは「存在しません」:
FragmentManager fragMan = getSupportFragmentManager();
どうすれば解決できますか?
アクティビティはサポートライブラリから FragmentActivity を拡張しないため、メソッドはスーパークラスに存在しません
API 11以上をターゲットにしている場合は、代わりに Activity.getFragmentManager を使用できます。
クラスをAppCompatActivity
ではなくActivity
に拡張します
親から現在のアクティビティを取得し、このコードを使用して
getActivity().getSupportFragmentManager()
インポート
import Android.support.v4.app.FragmentActivity;
import Android.support.v4.app.FragmentManager;
単に使用する
FragmentManager fm = getActivity().getSupportFragmentManager();
MainLayoutでフラグメントの膨張にアクセスするときは常にCastingまたはgetActivity()
を使用してください。
アクティビティの代わりにFragementAvtivityを拡張します
これは私のために働いた。 Android API 19以降を実行しています。
FragmentManager fragMan = getFragmentManager();
getCurrentActivity().getFragmentManager()