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