假設我在容器內有一個片段,我應該用另一個片段替換它。如何判斷2個片段是否有來自同一類的實例
的代碼非常簡單:現在我想確保fragmentToAdd是不相似的片段,我會代替
getSupportFragmentManager().beginTransaction().
replace(R.id.content_frame,fragmentToAdd).addToBackStack(null).commit();
的問題。
如果是這種情況,應用程序應該什麼都不做。
所以,我可以得到原始片段:
Fragment originalFragment=(Fragment) getSupportFragmentManager().findFragmentById(R.id.content_frame);
,並最終代碼會是這樣的:
if (haveDifferentInstance(originalFragment,fragmentToAdd)){
getSupportFragmentManager().beginTransaction().
replace(R.id.content_frame,fragmentToAdd).addToBackStack(null).commit();}
else
// Do nothing
那麼,什麼可能是haveDifferentInstance(片段fragmentA,片段代碼fragmentB)?
感謝您的幫助。
編輯
我知道我能做到像somethinh:
if (fragmentToAdd instanceof FragmentA)
但我有FragmentA,FragmentB,....片f,我不希望使用'如果'每種類型的片段。
爲什麼在添加Fragment後設置Tag參數然後使用findFragmentByTag(String tag)? – techiServices