从Android中的其他活动获取复选框变量

时间:2016-12-25 17:36:27

标签: java android variables checkbox

我是Android和Android Studio开发的初学者,我真的需要帮助获取复选框的状态。所以基本上我想知道如果检查活动中的复选框,那么如果是,则在主活动上显示一些文本。我已经阅读了大量的SO Q& As但没有任何效果。我明白了:

CheckBox show = (CheckBox) findViewById(R.id.checkBox);

public CheckBox getShow() {
    return show;
}

所以我使用

CheckBox setty = Settings.getCheck();

在另一堂课上。但是我收到了一个错误:

  

无法解析方法'getCheck()'

我该怎么做?如果它打开或关闭我需要得到并显示在主要活动上。请记住,我不能使用Intent,因为我没有转换按钮,文本和值必须始终在主类上。

提前致谢

1 个答案:

答案 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()方法,您想要检查第一个活动的复选框状态