假设我有一个容器内的片段需要用另一个片段替换。
代码非常简单:
问题是我希望确认fragmentToAdd和我将要替换的fragment不相似。如果相似,应用程序将什么也不做。所以,我可以获取原始Fragment:
最终的代码大致如下:
代码非常简单:
getSupportFragmentManager().beginTransaction().
replace(R.id.content_frame,fragmentToAdd).addToBackStack(null).commit();
问题是我希望确认fragmentToAdd和我将要替换的fragment不相似。如果相似,应用程序将什么也不做。所以,我可以获取原始Fragment:
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'语句。
(意思是作者不想在代码中针对每个Fragment类型写不同的逻辑判断)