final RadioGroup radioGroup1 = (RadioGroup)findVIEwByID(R.ID.RadioGroup1); Radiobutton D1 = (Radiobutton)findVIEwByID(R.ID.RadiobuttonD1); button D1 = (button)findVIEwByID(R.ID.RadiobuttonD1); D1.setonClickListener(new VIEw.OnClickListener() { @OverrIDe public voID onClick(VIEw v) { PdBase.sendfloat("D1",74); int selectedTypeID = radioGroup1.getCheckedRadiobuttonID(); Radiobutton D1 = (Radiobutton) findVIEwByID(selectedTypeID); if(D1 != null) // This will be null if none of the radio buttons are selected radioGroup1.clearCheck(); PdBase.sendfloat("D1",0); } });Radiobutton lC1 = (Radiobutton)findVIEwByID(R.ID.RadiobuttonlowC1); lC1.setonClickListener(new VIEw.OnClickListener() { public voID onClick(VIEw v) { int selectedTypeID = radioGroup1.getCheckedRadiobuttonID(); Radiobutton lC1 = (Radiobutton) findVIEwByID(R.ID.RadiobuttonlowC1); if (selectedTypeID == -1){ PdBase.sendfloat("lC1",72); } else if (selectedTypeID == R.ID.RadiobuttonlowC1) { radioGroup1.clearCheck(); PdBase.sendfloat("lC1",0); } } });解决方法 我最近有同样的需求 – 有一个无线电组,通过再次点击它可以取消选择所选项目.我发现使用听众无法实现这一点,但我能够使用自定义的Radiobutton来实现,就像这样……
public class ToggleableRadiobutton extends Radiobutton { // Implement necessary constructors @OverrIDe public voID toggle() { if(isChecked()) { if(getParent() instanceof RadioGroup) { ((RadioGroup)getParent()).clearCheck(); } } else { setChecked(true); } }}
请注意,按钮按照当前状态以不同方式切换 – 即,在按钮上调用setChecked(true)与在组上调用clearCheck().如果在两种情况下都使用setChecked(),则无法立即重新选择刚取消选择的按钮 – RadioGroup中的逻辑似乎立即取消选择它.
要使用此按钮,只需替换< Radiobutton>标签包含< your.package.ToggleableRadiobutton>在您的布局XML中.
总结以上是内存溢出为你收集整理的Android单选按钮取消选中全部内容,希望文章能够帮你解决Android单选按钮取消选中所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)