как скрыть элемент в навигационном ящике после завершения одного сеанса

У меня есть NavigationDrawerв моем Activityс тремя пунктами.
Я хочу показать все три элемента при первом входе пользователя.
В другом сеансе я хочу сделать один элемент невидимым и показать только два элемента NavigationDrawer.

2 ответа

  1. вы должны обнаружить первый запуск приложения с помощью этого кода

    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 элемент из навигационного ящика

  2. Используйте 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);
    

    В следующий раз проверьте, является ли состояние true или нет.

    if(!new SharedPrefModel(this).getStatus()){
    //hide
    }
    

    чтобы сбросить статус! использовать

    new SharedPrefModel(this).clearInfo();