手把手教你写软件5.radiobutton和checkbox

本文详细介绍了在软件开发中如何处理RadioButton和CheckBox的单选、多选逻辑,包括根据点击次数改变分数、利用SharedPreferences进行本地存储以及处理复杂场景的解决方案。通过实例代码解析了点击事件的监听和状态管理,帮助开发者解决实际项目中遇到的问题。
摘要由CSDN通过智能技术生成

 

在软件中,radiobutton和checkbox是比较常用的,前者表示单选,后者表示多选。但是在实际项目中,并不会仅仅只是单选多选这么简单,在这里,我分享一下我在写软件过程中所涉及到的拓展。

首先说一下我的需求,在一个radioGroup中有多个radiobutton,每选择一个会获得不同的分数。注意:是选择而不是点击

在一个页面中,用户可能只会选择其中的一部分(类似于做选择题,并没有把题做完,只做了其中一部分)。而且用户可能选择其中一个按钮后发现不对,然后更改选择,点击其他按钮,最后当下次返回该界面的时候,已经选择的题不应该还能再选,没选择的题应该可以再选。

 

 

我们来认真分析每一个需求:

1.每个按钮对应 不同的值,所以单纯的点击监听事件是会出错的,比如三个按钮,对应的值分别为1,2,3.点击第一个后发现不对,又点击第二个,分数就变为1+2=3.这是不对的。怎么解决呢?我的方法是根据点击次数重写监听事件。具体点说就是每个按钮如果点击次数为奇数表示用户选择了按钮,就加对应的分数,并且把其他按钮设置为不可点击。如果为偶数,表示用户双击了按钮,就减去对应的分数,并把其他按钮设置为可以点击。那么,用户点击后就会有分数,如果用户发现不对,双击按钮后分数还原,可以继而去选择其他的按钮。那么这个问题就完美解决了。

代码如下:

 

radioButton2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { boolean po=true; if(po){ score++;po=false; radioButton3.setEnable(false);} else{ score--;po=true; radioButton3.setEnable(true); radioGroup.clearCheck();//清除所有选项

}

}

 

2.用户只选择了其中一部分,那么我们应该用对应数量的Boolean变量来记录,一旦用户点击按钮&#x

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值