如果选中该复选框,我想在另一个活动中输出文本可以保存其状态。我知道我需要在某个地方加入共享偏好,但我是新手,所以我不知道该怎么做
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);
}
}
答案 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");
}
它... ..请不要忘记如果它是有帮助的,那就是正确的答案。快乐的编码