加log,看看在退出界面时isChecked的值是true还是false。
在重新进来时,把cbx1_ischecked保存的值也打印出来看看就知道了,或者debug一下也可以。

解决方案 »

  1.   

    离开这个界面再次回来之后,所有的CheckBox的状态又都会变为默认全部未选中的状态,这是肯定的,你回到这个界面还要读取SharedPreferrences啊,根据相应的值去setCheckbox的状态
      

  2.   

    onCreate的时候对每个checkbox设置setChecked,根据你从sharedpreference中读取的值进行设置
      

  3.   

    在onCreate中读取sharedpreference中设置的值,根据这个值checkbox设置setChecked
      

  4.   

    你要手动进入cbx1_ischecked然后进行设置,不然不会给你自动获取cbx1_ischecked值。在getSharedPreferences放完数据后,要在oncreate中初始化checkboz数据的状态,代码如下:/ onCreateSharedPreferences settings = getSharedPreferences("syllabus", 0);
    Boolean isChecked = settings.getBoolean("cbx1_ischecked", false);
    checkbox1.setChecked(isChecked );
      

  5.   

    试一下这个方法:
    boolean check1,check2;
     checkbox1.setOnCheckedChangeListener(new OnCheckedChangeListener(){
     public void onCheckedChanged(CompoundButton arg0, boolean isChecked) {
     // TODO Auto-generated method stub
      check1=isChecked; }
    });checkbox2.setOnCheckedChangeListener(new OnCheckedChangeListener(){
    public void onCheckedChanged(CompoundButton arg0, boolean isChecked) {
    // TODO Auto-generated method stub
     check2=isChecked;}}); //store boolean only once when you leave the activity
     Editor editor = getSharedPreferences("syllabus", 0).edit();
     editor.putBoolean("cbx1_ischecked", check1);
     editor.putBoolean("cbx2_ischecked", check2);
     editor.commit();
     In onCreate()  SharedPreferences prefs = getSharedPreferences("syllabus", 0);
      checkbox1.setChecked(prefs.getBoolean("cbx1_ischecked" ,false));
      checkbox2.setChecked(prefs.getBoolean("cbx2_ischecked" ,false));
      

  6.   

    分两个过程,选中后,你要触发一个事件去保存,比如点击按钮,或是监听checkbox,在activity中复写resume方法,读取preference,设置checkbox值