Android--实现一个函数对多个CheckBox动态监

最近在写一个程序时,用到了CheckBox。对于每个CheckBox来说,使用的逻辑是一样的,即点击后获取上面的文字。可十多个CheckBox,为每个都写一个监听函数那也太多了。所以研究了一下,想到了一个偷懒的方法。

首先用一个HashMap,将CheckBox和每个CheckBox上的文字储存起来。这里CheckBox作为Key储存。然后通过一个Set获取HashMap里的所有Key。接下来用一个CheckBox的循环,对于循环中的每一个元素,调用监听函数。这样只需要写一个函数,就可以监听多个CheckBox了。很适合偷懒呀。


HashMap= shen=new HashMap(); shen.put(yuyanjia,"预言家"); shen.put(nvwu,"女巫"); shen.put(lieren,"猎人"); shen.put(baichi,"白痴"); shen.put(chuidizhe,"吹笛者"); shen.put(qiubite,"丘比特"); shen.put(hunhun,"混混"); shen.put(shouwei,"守卫"); shen.put(zhanglao,"长老"); shen.put(bailangwang,"白狼王"); Set checkBoxes=shen.keySet(); for(final CheckBox checkBox: checkBoxes) { checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton compoundButton, boolean b) { if(b) { peizhi.add(shen.get(checkBox)); } else { peizhi.remove(shen.get(checkBox)); } } }); }

你可能感兴趣的:(Android--实现一个函数对多个CheckBox动态监)