2014-12-04 46 views
0

我有一個ActionBarDrawerToggle其中包含例如許多片段開放片段從ActionBarActivity

RootFragment LoginFragment RegistrationFragment

從RootFragment

我導航到另一個活動像

Intent activity = new Intent(getActivity().getApplicationContext(),TestActivity.class); 
activity.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
startActivity(activity); 
getActivity().finish(); 

如何從測試活動導航登錄分頁

我正在使用例如下面的代碼:

startActivity(new Intent(TestActivity.this, RegistrationFragment.class)); 
              finish(); 

,並與下面的消息RegistrationFragment應用程序崩潰不能轉換到android.app.Activity

任何幫助嗎?

+0

你'RegistrationFragment'應該是一個'Activity'裏面吧? – 2014-12-04 12:15:53

+0

MainActivity包含ActionBarDrawerToggle所以要回答你的問題是MainActivity抱歉,我是非常新的Android世界 – sger 2014-12-04 12:18:25

+0

看起來像你不知道什麼'Fragment'是如何使用它。使用'Fragment'之前閱讀這個:http://developer.android.com/guide/components/fragments.html – 2014-12-04 12:19:53

回答

0

您無法將Fragment類作爲參數傳遞給startActivity方法。您必須在那裏傳遞Activity類,並在創建時在剛剛啓動的Activity中顯示適當的Fragment。你的情況做:

startActivity(new Intent(TestActivity.this, ActionBarActivity.class)); 
finish(); 

然後在ActionBarActivity的onCreate方法添加片段。

getFragmentManager().beginTransaction().add(containerViewId , RegistrationFragment).commit(); 
1

startActivity方法是用於開始Activity不添加Fragment。添加Fragment你應該這樣做:

 FragmentTransaction ft = getFragmentManager() 
         .beginTransaction(); 
     ft.replace(R.id.container, new RegistrationFragment()); 
     ft.commit(); 

和R.id.container是你的片段容器的id在你的XML