2012-11-18 13 views
61

私には、フラグメントを持つアクティビティがあります。アクティビティからgetSupportFragmentManager()を呼び出すことができません

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" /> 

そして、私は活動の方法からResultFragmentからメソッドを呼び出すしたいのですが、getSupportFragmentManagerは "存在しない":私はこれを解決するにはどうすればよい

FragmentManager fragMan = getSupportFragmentManager(); 

を?

答えて

159

あなたの活動は、あなたが、API 11をターゲットにしている場合はそのための方法は、スーパークラス

に存在しない以上、あなたが代わりにActivity.getFragmentManagerを使用することができ、サポートライブラリからFragmentActivityを拡張しません。このコード

getActivity().getSupportFragmentManager() 
3

インポート

import android.support.v4.app.FragmentActivity; 
import android.support.v4.app.FragmentManager; 
+17

ここではインポートが不十分です - あなたは 'FragmentActivity'から継承する必要もあります。 –

12

iがFragmentActivity TabAdapter =新しいTabPagerAdapter(((FragmentActivity)getActivity())。getSupportFragmentManager()を使用);

+0

でもFragmentManagerを試すことができます。fragMan = getFragmentManager(); – MrPickles7

-2

を使用して、親から現在のアクティビティを取得

33

単にMainLayoutに膨らまアクセスフラグメントが 鋳造やgetActivity()を使用する場合、必ず覚えておいてください

FragmentManager fm = getActivity().getSupportFragmentManager(); 

を使用して代わりに活動

+1

清潔でシンプルな、ありがとう! – Matteo

0
getCurrentActivity().getFragmentManager() 
1

のAppCompatActivityにクラスを拡張します。

0

あなたは、フラグメント(活動)のコンテキスト内に存在するアダプタを想定し、 ない線量のコードを記述する場合、あなたは以下のようにActivityFragmentにアダプタであなたのコンテキストを変換することができます。

FragmentActivity activity = (FragmentActivity) mContext; FragmentManager manager = activity.getSupportFragmentManager();

0

アクティビティの代わりにFragementAvtivityを延長します

関連する問題