我正在尝试仅在第一次启动应用程序时显示片段。我正在努力展示片段,但它始终显示,我只希望它在首次发布时显示。
我正在导航抽屉drawerlistener中替换来自名为displayView
的方法中的片段(这可能是我的问题),我试图在我的方法中使用布尔和共享首选项。关于为什么这不起作用的任何想法
mDrawerLayout.setDrawerListener(mDrawerToggle);
if (savedInstanceState == null) {
// on first time display view for first nav item
firstTimeFrag();
}
}
private boolean firstTimeFrag(){
SharedPreferences pref = getPreferences(MODE_PRIVATE);
boolean ranBefore = pref.getBoolean("RanBefore",false);
if(!ranBefore){
SharedPreferences.Editor editor = pref.edit();
editor.commit();
Fragment fr = new ifFirstTimeFrag();
FragmentManager fm = getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fm.beginTransaction();
fragmentTransaction.replace(R.id.frame_container, fr);
fragmentTransaction.commit();
}else{
displayView(0);
}
return ranBefore;
}
答案 0 :(得分:5)
你没有保存任何东西^^
SharedPreferences.Editor editor = pref.edit();
editor.commit();
使用此:
SharedPreferences.Editor editor = pref.edit();
editor.putBoolean("RanBefore", true);
editor.commit();