首次启动时显示片段
Show Fragment on First Launch
我试图仅在应用程序首次启动时显示片段。我正在尝试显示该片段,但它总是显示,我只希望它在首次启动时显示。
我正在从一个名为 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;
}
你没有保存任何东西^^
SharedPreferences.Editor editor = pref.edit();
editor.commit();
使用这个:
SharedPreferences.Editor editor = pref.edit();
editor.putBoolean("RanBefore", true);
editor.commit();
我试图仅在应用程序首次启动时显示片段。我正在尝试显示该片段,但它总是显示,我只希望它在首次启动时显示。
我正在从一个名为 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;
}
你没有保存任何东西^^
SharedPreferences.Editor editor = pref.edit();
editor.commit();
使用这个:
SharedPreferences.Editor editor = pref.edit();
editor.putBoolean("RanBefore", true);
editor.commit();