2013-04-12 87 views
2

enter image description here如何啓動Fragment內的片段/活動?

我有一個按鈕Fragment。點擊Button時,必須在Fragment內打開新的Fragment/Activity。我已使用Intent, Intent i = new Intent(); i.setClass(getActivity(), UpdateProfile.class); startActivity(i); 編寫代碼,但它在新的活動中開放,如下圖所示。 enter image description here

我的要求是在圖1中。有人可以建議我該怎麼做嗎?

編輯:正如rai和ADK所建議的,它的工作正常,但新的片段覆蓋在舊的片段上。看到下面的圖片。 「更改密碼」(TextView)是疊加在現有片段上的新片段。

enter image description here

回答

1

你應該使用FragmentTransaction enter link description here

像這樣

 FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction(); 
     fragmentTransaction.replace(R.id.yourFragment, YourFragmentWithImageClass.getInstance()); 
     fragmentTransaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN); 
     fragmentTransaction.commit(); 
在活動

+0

http://oi48.tinypic.com/1j3i1k.jpg檢查這個..我沒有變'.getInstance();'順便說一句我的主類延伸'片段'不'FragmentActivity' – DroidLearner

+0

哦對不起....定義在YourFragmentWithImageClass方法getInstance()返回新YourFragmentWithImageClass() – ADK

+0

是啊..我得到它..但我有另一個問題..請檢查編輯在這篇文章。我用新的圖片更新了這篇文章。 – DroidLearner

3

嘗試:

getFragmentManager() 
    .beginTransaction() 
    .replace(containerViewId, newFragment) 
    .addToBackStack(null) // enables back key 
    .setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE) // if you need transition 
    .commit(); 
+0

在newFragment中,我必須給id或Classname? – DroidLearner

+0

檢查這個http://oi48.tinypic.com/1j3i1k.jpg我沒有得到它.. – DroidLearner

+0

@DroidLearner都不。通過實例化'片段'。你的情況,'UpdateProfile.instantiate(getActivity(),「fragment name」))',可能是? – tnj