2012-11-18 27 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(); 

我怎樣才能解決這個?

回答

3

進口

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

導入在這裏是不夠的 - 你也必須從'FragmentActivity'繼承。 –

12

獲得當前活動從父,然後使用此代碼

getActivity().getSupportFragmentManager() 
+0

也可以試試FragmentManager fragMan = getFragmentManager(); – MrPickles7

-2

我用FragmentActivity TabAdapter =新TabPagerAdapter(((FragmentActivity)getActivity())。getSupportFragmentManager() );

33

延伸類AppCompatActivity代替活性

+1

乾淨簡單,謝謝! – Matteo

0
getCurrentActivity().getFragmentManager() 
1

簡單地使用

FragmentManager fm = getActivity().getSupportFragmentManager(); 

訪問片段中MainLayout充氣使用 鑄造或getActivity()時記住總是。

0

如果你寫一個劑量不會在片段(活動)的背景下存在的代碼,假設一個適配器, 那麼您可以將您的語境中適配器ActivityFragment,如:

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

0

擴展FragementAvtivity而不是活動