我可以使用复选框来保存它们的值吗?

时间:2016-03-19 09:55:37

标签: javascript android

如果选中该复选框,我想在另一个活动中输出文本可以保存其状态。我知道我需要在某个地方加入共享偏好,但我是新手,所以我不知道该怎么做

public class Bookingscreen extends AppCompatActivity {

CheckBox Lothianside;
CheckBox Mckeowns;
CheckBox Loch;
OnClickListener checkboxListener;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_bookingscreen);
    Lothianside =(CheckBox)findViewById(R.id.checkBox3);
    Mckeowns =(CheckBox)findViewById(R.id.checkBox4);
    Loch =(CheckBox)findViewById(R.id.checkBox5);
    checkboxListener = new OnClickListener() {
        @Override
        public void onClick(View v) {

            if (Lothianside.isChecked()){

            }

            if (Mckeowns.isChecked()){

            }

            if (Loch.isChecked()){

            }

        }
    };

    Lothianside.setOnClickListener(checkboxListener);
    Mckeowns.setOnClickListener(checkboxListener);
    Loch.setOnClickListener(checkboxListener);




}



}

2 个答案:

答案 0 :(得分:0)

您可以使用以下方法使用偏好设置,对不起,如果有任何错误拼写,我会快速输入。

public void save(String key, String value){
    SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
    prefs.edit().putString(key, value).commit();
}

public String retrieve(String key){
    SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
    return prefs.getString(key, ""); //the second parameter is the default if no value is found
}

在您的代码中:

if (Lothianside.isChecked()){
    save("lothianKey", "text that you want to save when lothianside.ischecked()");
}

虽然我不喜欢这样,但你应该设置一个onCheckChanged监听器:

Lothianside.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
       @Override
       public void onCheckedChanged(CompoundButton buttonView,boolean isChecked){
         //do stuff here if the box is checked or unchecked
       }
   }
);

答案 1 :(得分:0)

不需要共享偏好.... 创建3个全局char变量

 char i ="f";
 char j="f";
 char k="f";

然后

       if (Lothianside.isChecked()){

         i="t";

        }
        else{
         i="f";
        }

        if (Mckeowns.isChecked()){

            j="t";

        }else{
              j="f";
           }


        if (Loch.isChecked()){

             k="t";

        }
         else{
              k="f";
            }

现在,当您打算调用新活动时,您就会以这种方式编写代码......

 Intent intent = new Intent(current_activity_name.this, new_activity.class);   
intent.putExtra("i_value", i);
intent.putExtra("j_value", j);
intent.putExtra("k_value", k);
startActivity(intent);

现在你的new_activity中你可以用这种方式访问​​这个变量 -

 @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.new_activity_main);

    Bundle extras = getIntent().getExtras();
    int i=extras.getString("i_value");
    int j=extras.getString("j_value");
    int k=extras.getString("k_value");
}

它... ..请不要忘记如果它是有帮助的,那就是正确的答案。快乐的编码