I have something like this in my code:
switch (item.getItemId()) {
case R.id.search:
if (currentFragment == null || !(currentFragment instanceof ClipsFragment)) {
ClipsFragment clipsFragment = new ClipsFragment();
fragmentTransaction.replace(R.id.container,
clipsFragment).commit();
currentFragment = clipsFragment;
} else {
fragmentTransaction.replace(R.id.container,
currentFragment).commit();
}
currentDrawerItem = R.id.search;
return true;
case R.id.download_managers:
if (currentFragment == null || !(currentFragment instanceof DownloadFragment)) {
DownloadFragment downloadFragment = new DownloadFragment();
fragmentTransaction.replace(R.id.container,
downloadFragment).commit();
currentFragment = downloadFragment;
} else {
fragmentTransaction.replace(R.id.container,
currentFragment).commit();
}
currentDrawerItem = R.id.search;
return true;
default:
return false;
}
As you can see there are two similar switch cases.
Any way to convert them to a method using Java 7?
I tried a bit but the instanceof
is tricky.
None of my attempts are worth posting here.
Note: Fragment
and DownloadFragment
extend Fragment
.