android开发大神速来 小弟的checkbox遇到问题,选中后取消该选项再选,TextView中会出现两次,怎么破

如题,代码如下:cb01.setOnCheckedChangeListener(newOnCheckedChangeListener(){@Overridepublicv... 如题,代码如下:
cb01.setOnCheckedChangeListener(new OnCheckedChangeListener(){

@Override
public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {
// TODO Auto-generated method stub
if(isChecked == true)
tv4.append(cb01.getText()+",");
}
});

cb02.setOnCheckedChangeListener(new OnCheckedChangeListener(){

@Override
public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {
// TODO Auto-generated method stub
if(isChecked == true)
tv4.append(cb02.getText()+",");
}
});

cb03.setOnCheckedChangeListener(new OnCheckedChangeListener(){

@Override
public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {
// TODO Auto-generated method stub
if(isChecked == true)
tv4.append(cb03.getText());
}
});

实现效果:

谢谢大神啦~速来
展开
 我来答
dut_wish
2014-08-17 · TA获得超过1634个赞
知道小有建树答主
回答量:301
采纳率:0%
帮助的人:510万
展开全部
这种事就不要这么死脑筋,虽然每次append字符串很优雅,但是这里用蛮力一点的办法更好。

其实你可以用一个数组,来保存一组boolean 值。先把这些boolean值都初始化为和你的checkbox的状态对应的值。比如你的checkbox开始都是没选中的,就把boolean数组都初始化为false以此类推。

每次onCheckedChanged都修改对应的数组的boolean值,这样保证了checkbox的状态都统一的保存在了你的boolean数组里面。
另外写一个方法,每次修改状态后,都立即按照boolean数组的状态来重新构建字符串。然后用tv4.setText 把新字符串设置给下面的TextView。
这样虽然看起来每次都重新构建字符串比较浪费,其实是差不多的,对于控件来说,给他append和直接设置开销根本没差多少,但这样让你更好控制字符串的格式。
小知道路宽2084
2014-08-17
知道答主
回答量:5
采纳率:0%
帮助的人:6595
展开全部
建议你去极客在线教育找找看
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式