2015-10-06 92 views
0

我知道這個問題已經被其他線程問過像這樣的: Trying to replace one fragment with another如何用另一個片段替換自定義片段?

但是,在這些情況下,佈局文件將有一個ID的節點。在我的情況下,我創建了一個自定義的SettingsFragment,這個SettingsFragment包含很多項目。當我點擊一個項目時,它會啓動另一個片段CreatePasswordFragment。

現在,我的SettingsFragment沒有一個ID(或不是嗎?我是新手到Android ...),所以我不知道如何使用.replace(R.id.fragment_container,CreatePasswordFragment.newInstance())

到目前爲止,我已經使用下面的方法,雖然它的工作,我想知道是否有更好的方法來做到這一點?

getActivity() 
      .getSupportFragmentManager() 
      .beginTransaction() 
      .remove(SettingsFragment.this) 
      .replace((android.R.id.content, CreatePasswordFragment.newInstance(userProfile.email)) 
      .addToBackStack(null) 
      .commit(); 

回答

0

replace()方法中的id是容器ID,而不是您的片段ID。所以它會是你的活動中顯示片段的佈局的id。所以你做對了。但有一點需要注意的是,您無需致電remove()。您可以撥打replace()FragmentManager會自動爲您撥打remove()

相關問題