Android 如何在一个会话结束后隐藏导航抽屉中的项目

Android 如何在一个会话结束后隐藏导航抽屉中的项目,android,navigation-drawer,Android,Navigation Drawer,我的活动中有一个导航抽屉,里面有三个项目。 我想在用户首次登录时显示所有三项。 在另一个会话中,我想使一个项目不可见,并在NavigationDrawer中仅显示两个项目 您必须使用此代码检测应用程序的首次启动 public class MyActivity extends Activity { SharedPreferences prefs = null; @Override protected void onCreate(Bundle savedInstanceState) {

我的
活动中有一个
导航抽屉
,里面有三个项目。 我想在用户首次登录时显示所有三项。
在另一个会话中,我想使一个项目不可见,并在
NavigationDrawer
中仅显示两个项目

您必须使用此代码检测应用程序的首次启动

public class MyActivity extends Activity {

SharedPreferences prefs = null;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    // Perhaps set content view here

    prefs = getSharedPreferences("com.mycompany.myAppName", MODE_PRIVATE);
}

@Override
protected void onResume() {
    super.onResume();

    if (prefs.getBoolean("firstrun", true)) {
        // Do first run stuff here then set 'firstrun' as false
        // using the following line to edit/commit prefs
        prefs.edit().putBoolean("firstrun", false).commit();
    }
}
}

在第一次启动时或在第一次启动完成后,将1个项目添加到导航抽屉中,从导航抽屉中删除1个项目

使用SharedReferences存储用户状态

public class SharedPrefModel {
    public static String INFO_STORE_TAG = "user_info";

    public static String sharedPrefName = "USER";
    private SharedPreferences sharedPref;

    public SharedPrefModel(Context context) {
        this.sharedPref = context.getSharedPreferences(sharedPrefName, MODE_PRIVATE);

    }

    public void setStatus(Boolean isFirstTime) {

        SharedPreferences.Editor editor = sharedPref.edit();
        editor.putString(INFO_STORE_TAG, isFirstTime);
        editor.apply();
    }
    public Boolean getStatus() {
        return sharedPref.getBoolean(INFO_STORE_TAG,false);

    }


    public void clearInfo() {
        SharedPreferences.Editor editor = sharedPref.edit();
        editor.clear();
        editor.apply();
    }
}
首次登录后,将状态设置为false

new SharedPrefModel(this).setStatus(false);
下次检查状态是否为真

if(!new SharedPrefModel(this).getStatus()){
//hide
}
重置状态!使用

new SharedPrefModel(this).clearInfo();

使用SharedReferences。将默认值设置为var
firstSession=true
。如果firstSessions为true,请在菜单中创建第三项,否则请避免创建它