假设我在容器中有一个片段,我应该用另一个片段替换它。
代码很简单:
getSupportFragmentManager().beginTransaction().
replace(R.id.content_frame,fragmentToAdd).addToBackStack(null).commit();
现在的问题是我想确保 fragmentToAdd 与我将替换的片段不相似。
如果是这种情况,应用程序应该什么都不做。
所以,我可以得到原来的片段:
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(Fragment fragmentA, Fragment fragmentB) 的代码可能是什么?
感谢您的帮助。
编辑
我知道我可以做类似的事情:
if (fragmentToAdd instanceof FragmentA)
但是我有 FragmentA、FragmentB、.... Fragment F,我不想对每种类型的 Fragment 使用“if”。