从复选框保存值并在另一个视图中使用

时间:2017-05-12 17:42:45

标签: android checkbox

我想从复选复选框中保存值boolean true或false,并在另一个视图中使用它。

这是我想做的事情

在我的活动中,我有复选框,它看起来像这样

checkBoxAdvanced = (CheckBox) findViewById(R.id.checkbox_advanced);
    checkBoxNeutral = (CheckBox) findViewById(R.id.checkbox_neutral);

    checkBoxAdvanced.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            checkBoxNeutral.setChecked(false);
            checkState = true;
            sendCheckState();
        }
    });

    checkBoxNeutral.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            checkBoxAdvanced.setChecked(false);

        }
    });

    public void sendCheckState(){
    Intent intent = new Intent(SettingsActivity.this, MainActivity.class);
    intent.putExtra("checkValue", value);
    startActivity(intent);
}

在我的MainActivity中我想使用该值来隐藏或显示文本,具体取决于值

任何可以帮助解决这个问题的人?

2 个答案:

答案 0 :(得分:1)

在MainActivity类中获取此值

 boolean flag =  getIntent().getBooleanExtra("checkValue",false);

 if(flag){
     // hide or show your view here
   }

答案 1 :(得分:1)

您可以使用SharedPreferences在项目中使用相同的名称SHARED_PREFERENCES_NAME保存值并在其他位置访问它:

checkBoxAdvanced.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        checkBoxNeutral.setChecked(false);
        checkState = true;

        SharedPreferences sp = this.getSharedPreferences(SHARED_PREFERENCES_NAME,Context.MODE_PRIVATE);
        SharedPreferences.Editor spEdit = sp.Edit();
        spEdit.putBoolean("checkState",true);
        spEdit.apply();
        Intent intent = new Intent(SettingsActivity.this, MainActivity.class);
        startActivity(intent);
    }
});

要在其他活动或服务中访问checkState的值:

SharedPreferences sp = this.getSharedPreferences(SHARED_PREFERENCES_NAME,Context.MODE_PRIVATE);
boolean checkState = sp.getBoolean("checkState",false);