SharedPreferences单击复选框和隐藏按钮

时间:2019-07-20 06:29:59

标签: android android-studio

我有两个活动,ActivityAActivityBActivityA有一个复选框,ActivityB有一个按钮。当我单击Checkbox中的ActivityA时,我希望ActivityB中的按钮不可见。我希望它在打勾时可见。最重要的是,我想用SharedPreferences保存它。因此,我想退出程序并重新输入我做的最后一个过程。有人可以帮我吗?预先感谢。

3 个答案:

答案 0 :(得分:2)

您可以使用 sharedpreference 来实现。

第1步:在您的A活动中添加以下代码

SharedPreferences sharedPreferences = getSharedPreferences("ButtonPrefs", MODE_PRIVATE);
SharedPreferences.Editor editor=sharedPreferences.edit();
checkbox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
    if(isChecked)
    {
        editor.putBoolean("btnShow",false);
editor.apply();

    }
    else
    {
        editor.putBoolean("btnShow",true);
editor.apply();
    }
}});

第1步:在B活动中放置以下代码

boolean showornot;
SharedPreferences sharedPreferences = getSharedPreferences("ButtonPrefs", MODE_PRIVATE);
showornot=sharedPreferences.getBoolean("btnShow",false);
if(!showornot)
{
    button.setVisibility(View.GONE);
}
else
{
    button.setVisibility(View.VISIBLE);
}

简单&& ;)

答案 1 :(得分:0)

您可以通过Intent将数据从活动A传递到B,

Intent intent = new Intent(ctx, B.class);
intent.putExtra("checkbox_result", "true");
startActivity(intent);

然后在B活动中获取数据,并将此字符串保存为共享首选项:

String check= getIntent().getStringExtra("checkbox_result");

答案 2 :(得分:0)

您可以使用可在整个应用程序中访问的公共sharedPreference。将数据从活动A中放到上面,然后从活动B中读取。

从这两个活动中获取它的实例。

SharedPreference  sp = PreferenceManager.getDefaultSharedPreference(context);

已保存数据,

SharedPreference.Editor editor = sp.getEditor();
editor.putBoolean(MY_BOL, checkboxValue).apply();

从与保存时相同的首选项中读取保存的值,以与保存时相同的方式获取其实例,如上所示, 获取值,请在活动N的onCreate()方法中执行此操作。

boolean bol = sharedPreference. getBoolean(MY_BOL, false);

button.setVisibility(bol);