2013-07-01 33 views
19

進入這樣的代碼:。android.support.v4.app.FragmentTransaction需要

FragmentTransaction transaction = getSupportFragmentManager().beginTransaction(); 

與此錯誤「android.support.v4.app.FragmentTransaction交易上來= getSupportFragmentManager()的BeginTransaction() ;」並擁有這是一個快速解決它確實在事實上排除錯誤:

android.support.v4.app.FragmentTransaction transaction = getSupportFragmentManager().beginTransaction(); 

,我在一個延伸FragmentActivity我的主要活動打字。有人知道爲什麼嗎?我已經包括:

import android.support.v4.app.Fragment; 
import android.support.v4.app.FragmentActivity; 
import android.support.v4.app.FragmentManager; 
import android.support.v4.app.FragmentPagerAdapter; 
import android.support.v4.view.ViewPager; 

編輯

DescriptionFragment fragment = new DescriptionFragment(); 
      android.support.v4.app.FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); 
      ft.replace(R.id.pager, fragment); 
      ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN); 
      ft.commit(); 

改變getSupportFragmentManager()來getFragmentManager()要求我DescriptionFragment改變android.app.Fragment ...任何想法?

+0

加上'導入android.support.v4.app.FragmentTransaction;'或'導入android.support.v4.app。*;' – CRUSADER

+0

謝謝...似乎給我這個錯誤:導入android.support.v4.app.FragmentTransaction與另一個進口語句 –

回答

31

使用getSupportFragmentManager(),您將獲得supportLibrary fragmentManager而不是系統fragmentManager。所以你正在處理支持庫的事務。

這就是您需要添加所有這些導入並使用android.support.v4.app的原因。

如果您想獲取系統fragmentManager,只需嘗試使用getFragmentManager()而不是getSupportFragmentManager()。

希望這有助於

+0

相沖突。謝謝您的反饋。請檢查我的更新問題,它仍然給我提供問題 –

+0

FragmentDescription是一個創建類由你編輯?它是Fragment類型還是SupportFragment類型? – jaumebd

+0

FragmentDescription由我創建並擴展Fragment –

2

有導入android.support.v4.jar文件到您的項目?

+0

不確定添加.jar文件是什麼意思?我已經將它添加到我的構建路徑中 –

2

好吧......只是要對片段的方法,並把這種愛:

void addfragment(Fragment fragment, boolean addBacktoStack, int transition) { 
    FragmentTransaction ft = getFragmentManager().beginTransaction(); 
    ft.replace(R.id.simple_fragment, fragment); 
    ft.setTransition(transition); 
    if (addBacktoStack) 
     ft.addToBackStack(null); 
    ft.commit(); 

} 

剛纔打電話給你的片段:

addfragment(new DescriptionFragment(this),true, FragmentTransaction.TRANSIT_FRAGMENT_OPEN); 
+0

同樣的事情似乎正在發生..此錯誤出現在ft.replace中:類型FragmentTransaction中的方法replace(int,Fragment)不適用於參數(int,Fragment)。這可以通過更改開始來解決:void addfragment(android.app.Fragment fragment,boolean addBacktoStack,int transition){ –

+0

您必須更改android.support.v4.Fragment。我認爲這個錯誤是因爲你已經擴展了android.app.Fragment的片段而不是你必須使用android.support.v4.Fragment ..所以你會得到更好的解決方案。 –

3

試試這個

公共類DescriptionFragment擴展android.support.v4.app.Fragment

而不是簡單的片段。

1

getActivity()解決售後服務我的問題android.app.FragmentManager fragmentManager = getActivity().getFragmentManager();

1

在活動進口android.app.Fragment .. 在片段與android.app.Fragment延長.. 這解決了我的問題......

相關問題