我正在使用导航栏,在我的"主要活动"中有5个片段。 我的第5个片段是调查页面,我想在调查结束时,这个第5个片段将从我的导航栏中删除。
我在主要活动中的代码:
private void displayView(int position) {
// update the main content by replacing fragments
Fragment fragment = null;
switch (position) {
case 0:
fragment = new AFragment();
break;
case 1:
fragment = new BFragment();
break;
case 2:
fragment = new CFragment();
break;
case 3:
fragment = new DFragment();
break;
case 4:
fragment = new SurveyFragment();
break;
default:
break;
}
if (fragment != null) {
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction ft = fragmentManager.beginTransaction();
ft.replace(R.id.frame_container, fragment);
ft.commit();
// update selected item and title, then close the drawer
mDrawerList.setItemChecked(position, true);
mDrawerList.setSelection(position);
setTitle(navMenuTitles[position]);
mDrawerLayout.closeDrawer(mDrawerList);
} else {
// error in creating fragment
Log.e("MainActivity", "Error in creating fragment");
}
}
答案 0 :(得分:0)
您可以尝试将ViewPager与适配器一起使用。调查完成后,您可以在“活动”中设置布尔值,然后刷新适配器。
布尔值将执行以下操作:
{
if(survayNotDone)
adapter.add(5thFragment);
viewPager.setAdapter(adapter);
}
答案 1 :(得分:-1)
通过导航栏,您可能意味着NavigationDrawer,因此您可以声明一个回调接口:
public interface OnFinishCallback {
void onFinish();
}
然后在您的活动中实施它:
public class MainActivity implements OnFinishCallback {
@Override
public void onFinish() {
//remove survey item from adapter
}
}
并将此回调传递给Survey片段,该片段将在需要完成时调用onFinish()方法。