拉动SharedPreferences时如何避免设置默认布尔值

时间:2018-03-19 03:07:07

标签: android sharedpreferences

我正在创建一个应用程序,其中设置询问应用程序是否在孩子的手机或父母的手机上并根据设置应用程序,并且它应该在SharePreferences中保存一个布尔值,以便它向右打开每次app版。

我为父设置应用程序并将其转到父应用程序,但是当我再次打开应用程序时,它会打开孩子的应用程序,我猜是因为我必须将此默认布尔值作为备份它造成这种情况。我该如何避免这个问题?

这是我用来在选择父按钮时将父布尔值设置为true的代码:

        // PARENT = TRUE

    parent_app_selection.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Intent intent = new Intent(parent_or_child_first_menu.this, LoginActivity.class);

            //Saves a boolean that determines the app to be the parent version of the app.
            SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(parent_or_child_first_menu.this);
            prefs.edit().putBoolean("parent", true).apply();

            startActivity(intent);
        }
    });

这是我用来检查布尔设置为

的代码
    SharedPreferences is_it_parent_app = 
    PreferenceManager.getDefaultSharedPreferences(this);
    boolean parent_setup_completed = is_it_parent_app.getBoolean("parent",false);
    if(parent_setup_completed)
    {
        Intent home = new Intent(Permission_requests.this, parents_app.class);
        startActivity(home);
    }

我不想将布尔备份设置为true,因为我不希望子项能够进入应用程序的父级,以防它回退到该布尔值。

1 个答案:

答案 0 :(得分:1)

要完成的更多1行代码

 SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(parent_or_child_first_menu.this);
SharedPreferences.Editor editor = prefs.edit();
    editor.putBoolean("parent", true);
    editor.commit()