多选框显示并存储 通过Math.pow(2,i)函数
如图需要做一个多选框显示并存储。一开始采用了 字符串+","去存储和读取。通过split方法遍历出是否选中。
后来。采用了把所有的条目循环累加进行读取操作, Math.pow(2,i) 函数,保证唯一性。并优化了代码。
代码如下:
/** * 保存文件类型的配置数 * @param booleen */ public void setOption(boolean[] booleen){ int count = 0; for (int i = 0; i<booleen.length; i++){ if(booleen[i]){ count += Math.pow(2,i); } } spUtils.put("count",count); }
/** * 读取文件类型的总设置数 */ public void getOption(){ int count = spUtils.getInt("count"); for(int i = 0 ; i < booleen.length;i++) { double pow = Math.pow(2, i); if ((count & (int)pow) > 0) { //只要能被2的倍数与运算成功 就代表为选中窗体 booleen[i] = true; } else { booleen[i] = false; } } } 测试结果:只有2的倍数才可以。