2016-11-14 24 views
1

我創造我自己的片段我想從我的活動激活調用定製的片斷。我的mainActivity文件是一個純粹的活動(不是FragmantActivity或其他)。爲什麼我不能使用我的自定義片段作爲參數?從活動

if (savedInstanceState == null) { 
     // Add the fragment on initial activity setup 
     myFragment = new CustomFragment(); 
     getFragmentManager() 
     .beginTransaction() 
       .add(android.R.id.content, myFragment) 
       .commit(); 

我得到一個編譯錯誤,告訴我,上。新增的第二個參數()方法必須是一個片段,但「myFragment」是,導出片段類CustomFragment。那麼如何從一個正常的Activity中激活這個片段呢?

+0

請確保CustomFragment繼承自'android.app'而不是'android.support.v4.app' –

+0

我的customFragment必須是'android.support.v4.app.Fragment',因爲我在其中使用Facebook身份驗證。 –

+1

然後使用getSupportFragmentManager()而不是getFragmentManager() –

回答

0

確保你和你的片段進口一致。在所有類中使用導入android.app.Fragment或導入android.support.v4.app.Fragment;在所有的班級。不要混合和匹配

FragmentActivity或任何子類FragmentActivity的只能容納從支持庫的片段。因此,將您的活動的父類更改爲FragmentActivity,它將起作用。由於AppCompatActivity繼承自FragmentActivity,它也可以工作。