2014-10-01 87 views
1

恢復附上SessionFragment從SpeakerFragment與代碼:事件片段從堆棧中

FragmentManager fragmentManager = getActivity().getSupportFragmentManager(); 
     fragmentManager.beginTransaction() 
       .add(R.id.container, new SessionFragment(session)) 
       .addToBackStack("session") 
       .commit(); 

在SessionFragment(在OnAttach()),我改變動作條標題進程標題。

當從SessionFragment返回時,我想要將ActionBar標題更改爲Speaker名稱。我怎樣才能做到這一點?

OnStart(),OnResume(),onAttach()沒有調用。

+0

看看這個:http://developer.android.com/reference/android/app/FragmentManager.OnBackStackChangedListener.html或這個:http://developer.android.com/reference/android/app/Fragment html的#onHiddenChanged(布爾值) – 2014-10-01 08:20:34

回答

0

您剛剛添加到容器中的片段不拆卸或刪除以前的一個,嘗試更換代替,並設置你的動作條標題OnActivityCreated()

FragmentManager fragmentManager = getActivity().getSupportFragmentManager(); 
fragmentManager.beginTransaction() 
     .replace(R.id.container, new SessionFragment(session)) 
     .addToBackStack("session") 
     .commit(); 

另要注意,你不應該使用一個非空的構造對於片段,框架只會在恢復片段時調用空的構造函數,例如怠速後,背景等 相反,會話的類應實現parcelable,並應使用fragment.setArguments()作爲片段參數傳遞。