这个界面在切屏时原来勾选的条目会被改变,我是想这样处理:保存选中的position,在Menifest设置之后,在onConfigurationChanged(Configuration newConfig)里使相应的CheckBox选中,但怎么由position得到对应的CheckBox呢?为什么ListView的getChildAt(position)不行?

解决方案 »

  1.   

    嘿嘿。这个问题不可以直接定位到每个不同的position哦,你的方法是正确的,选择好select以后保存下是否选中,比如1是选中 2是不选中在preference,在切屏的时候Activity会重启。但是这个可以禁掉。mainfest中加入
    android:configChanges="orientation|keyboardHidden",然后在代码中加入
    public void onConfigurationChanged(Configuration config) {
    super.onConfigurationChanged(config);
    }
    不过这解决了切屏的问题,但是你切换了界面Activity还是会重启的,所以解决不了根本问题哦。所以关键问题就是在你构建listview的时候就设置checkbox的是否选中就可以。
    http://blog.csdn.net/peijiangping1989/article/details/6289108在getview方法中根据position设置好是否选中,然后在checkbox的选择事件中更新你保存在preference的值就可以了。
      

  2.   

    可以去getView()中给每个checkbox设置一个监听,当监听到选中之后你可以放入一个HashMap里保存起来,保存为一个不紧是你的actiivity生命周期的变量,当你回来时再根据这个HashMap去重新getView时设置选中的应该是可以的把