在检查 Fragment
是什么子类时,我不得不多次使用 instanceof
,而且我觉得我在某个地方出错了:
@Override
public void onBackPressed() {
Fragment frag = mManager.findFragmentByTag("Fragment");
if(frag instanceof CustFragmentOne ||
frag instanceof CustFragmentTwo ||
frag instanceof CustFragmentThree ||
frag instanceof CustFragmentFour) {
//This method displays an instance of "CustFragmentFive"
displayView(0);
}
else if(frag instanceof CustFragmentFive)
super.onBackPressed();
else if(mManager.getBackStackEntryCount() > 0)
getFragmentManager().popBackStack();
else
super.onBackPressed();
}
有什么办法可以在这里使用它吗?我还能如何识别 fragment 的类型并相应地调用正确的方法?
最佳答案
最简单的方法是让 CustFragmentOne、CustFragmentTwo 等实现一个通用接口(interface)。这样,您只需要针对该接口(interface)执行一次instanceof 检查,而不需要单独检查每个具体类。
关于java - 在这种情况下如何避免使用instanceof?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24553884/