我是Android和Android Studio开发的初学者,我真的需要帮助获取复选框的状态。所以基本上我想知道如果检查活动中的复选框,那么如果是,则在主活动上显示一些文本。我已经阅读了大量的SO Q& As但没有任何效果。我明白了:
CheckBox show = (CheckBox) findViewById(R.id.checkBox);
public CheckBox getShow() {
return show;
}
所以我使用
CheckBox setty = Settings.getCheck();
在另一堂课上。但是我收到了一个错误:
无法解析方法'getCheck()'
我该怎么做?如果它打开或关闭我需要得到并显示在主要活动上。请记住,我不能使用Intent,因为我没有转换按钮,文本和值必须始终在主类上。
提前致谢
答案 0 :(得分:0)
您可以使用共享偏好设置来存储复选框选中/取消选中值。根据该值,您可以在其他活动中显示文字。
这是代码:
public static final String MyPREFERENCES = "MyPrefs";
在第一个活动的onCreate()方法中初始化共享首选项
sharedPreferences = getSharedPreferences(MyPREFERENCES, Context.MODE_PRIVATE);
CheckBox check1 = (CheckBox) view.findViewById(R.id.your_checkbox_id);
//now initialize listener for checkbox
check1.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked) {
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString("checked", "1");
editor.commit();
} else {
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString("checked", "0");
editor.commit();
}
}
});
现在在另一个活动中,您只需加载共享首选项数据并根据条件显示消息
public void Load_checkbox() {
//define MyPREFERENCES in other activity too- same as first activity
SharedPreferences shared = getSharedPreferences(MyPREFERENCES, Context.MODE_PRIVATE);
if (shared.getString("checked", "").equals("1")) {
Toast.makeText(getApplicationContext(), "CheckBox Checked " ,Toast.LENGTH_LONG).show();
}else{
Toast.makeText(getApplicationContext(), "CheckBox unchecked " ,Toast.LENGTH_LONG).show();
}
}
在第二个活动中调用此Load_checkbox()方法,您想要检查第一个活动的复选框状态