如何隐藏一个会话结束后导航抽屉中的项目
问题描述:
我有一个NavigationDrawer
在我的Activity
与三个项目。 我想在第一次用户登录时显示全部三个项目。 在其他会话中,我想让一个项目不可见,并只显示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
答
使用SharedPreferences存储用户状态!
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);
下一次检查状态是否为真。
重置状态!使用
new SharedPrefModel(this).clearInfo();
使用SharedPreferences。将默认值设置为var'firstSession = true'。如果firstSessions为true,则在菜单中创建第三个项目,否则请避免创建它 –