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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android开发大神速来 小弟的checkbox遇到问题,选中后取消该选项再选,TextView中会出现两次,怎么破相关的知识,希望对你有一定的参考价值。

如题,代码如下:
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());

);

实现效果:

谢谢大神啦~速来

这种事就不要这么死脑筋,虽然每次append字符串很优雅,但是这里用蛮力一点的办法更好。

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

每次onCheckedChanged都修改对应的数组的boolean值,这样保证了checkbox的状态都统一的保存在了你的boolean数组里面。
另外写一个方法,每次修改状态后,都立即按照boolean数组的状态来重新构建字符串。然后用tv4.setText 把新字符串设置给下面的TextView。
这样虽然看起来每次都重新构建字符串比较浪费,其实是差不多的,对于控件来说,给他append和直接设置开销根本没差多少,但这样让你更好控制字符串的格式。
参考技术A 建议你去极客在线教育找找看

wpf datagrid中添加一列checkbox,反复点选,会出现checkbox框偏移,请wpf大神帮忙!

如图:

有这么诡异的事情!?反复点选的时候,checkbox是位置是在靠左和居中来回变换吗?如果是,检查一下样式中的触发器,追问

是的,但只是偶尔出现。我的样式是默认的

追答

你测试一下:是否每次checkbox居中,再点击就一定会恢复成靠左。如果是,基本上可以肯定是你的代码触发的。
你上的图是checkbox.IsChecked = false的情况,你的测试有没有在IsChecked = true的情况下checkbox居中?如果没有,说明这触发的条件是IsChecked = false。
以此类推,反复测试,记录每次checkbox居中时的各种情况,就能找到问题。或者你在相关的代码中找找,或许能找到原因。
不好意思,我也就剩下这种笨办法了。

追问

我测试的结果跟你的描述几乎一样,谢谢了,我再看看,分数给你

追答

我的回答能对你有所帮助,我也很高兴。祝你早点找出问题所在。^-^

参考技术A 找懂行的去,我不会

以上是关于android开发大神速来 小弟的checkbox遇到问题,选中后取消该选项再选,TextView中会出现两次,怎么破的主要内容,如果未能解决你的问题,请参考以下文章

飞凌i.MX6Q开发板Android系统下可以实现APP签名啦!速来

飞凌i.MX6Q开发板Android系统下可以实现APP签名啦!速来

laravel admin 使用技巧 - 重构detail 页面(新手速来,大神绕道)

在android中怎么把checkbox设置成小的20dip*20dip大小的,但是设置成太20dip*20dip却只显示一半,

如何获取listview里选中的checkbox

用MATLAB按二阶龙格库塔法求解微分方程组,大神速来,急急急