多选框显示并存储 通过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的倍数才可以。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值