首次发布时显示片段

时间:2015-07-02 15:34:56

标签: android android-fragments boolean sharedpreferences

我正在尝试仅在第一次启动应用程序时显示片段。我正在努力展示片段,但它始终显示,我只希望它在首次发布时显示。  我正在导航抽屉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;
}

1 个答案:

答案 0 :(得分:5)

你没有保存任何东西^^

SharedPreferences.Editor editor = pref.edit();
editor.commit();

使用此:

SharedPreferences.Editor editor = pref.edit();
editor.putBoolean("RanBefore", true);
editor.commit();