package cn.lily.cb;
import android.os.Bundle;
import android.app.Activity;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.view.Menu;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.Toast;
public class MainActivity extends Activity {
private CheckBox mCbDemo;
private SharedPreferences sp;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 初始化控件
mCbDemo = (CheckBox) findViewById(R.id.cb);
// 要想回显CheckBox的状态 我们需要取得数据
// [1] 还需要获得SharedPreferences
sp = getSharedPreferences("isChecked", 0);
boolean result = sp.getBoolean("choose", false); // 这里就是开始取值了 false代表的就是如果没有得到对应数据我们默认显示为false
// 把得到的状态设置给CheckBox组件
mCbDemo.setChecked(result);
// 为CheckBox设置监听事件
mCbDemo.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
// 判断CheckBox是否被勾选了
boolean ischecked = mCbDemo.isChecked();
if(isChecked) {// CheckBox被勾选了 我们就把你的状态保存起来
// 我们先来个吐司
Toast.makeText(MainActivity.this, "被勾选了", 1).show();
sp = getSharedPreferences("isChecked", 0);
// 使用编辑器来进行操作
Editor edit = sp.edit();
// 将勾选的状态保存起来
edit.putBoolean("choose", true); // 这里的choose就是一个key 通过这个key我们就可以得到对应的值
// 最好我们别忘记提交一下
edit.commit();
} else {
Toast.makeText(MainActivity.this, "被勾选了", 1).show();
}
}
});
}
}
上面是一个CheckBox状态保存的实例 大家也可以在谷歌官方文档中去看下! 代码很简单 主要看下注释 这样便于理解 有什么问题请下方留言告知!共同学习进步!