假设我在容器内有一个片段,我应该用另一个片段替换它。如何判断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