作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我上周刚刚开始学习,我对我书上的RadioGroup
有一些疑问。
radioGroup.clearCheck();
radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
RadioButton rb = (RadioButton) group.findViewById(checkedId);
switch (rb.getId()) {
case R.id.radioButtonLondon:
tClock.setTimeZone("Europe/London");
break;
case R.id.radioButtonBeijing:
tClock.setTimeZone("CST6CDT");
break;
case R.id.radioButtonNewYork:
tClock.setTimeZone("America/New_York");
break;
}
// End switch block
//}
}
});
<小时/>
RadioButton rb = (RadioButton) group.findViewById(checkedId);
用于 "get a reference to the actual object that checkedId is referring to, then we can retrieve the familiar ID that we use for the currently selected radio button, for which we now have a reference stored in rb."
我对这个解释很困惑
RadioButton rb = (RadioButton) group.findViewById(checkedId);
有必要吗?我试图隐藏这一行并将 switch (rb.getId())
更改为 switch(checkedId)
并且一切仍然正常。谢谢!
最佳答案
不要定义单选按钮。在 setOnCheckedChangeListener 本身中,您将获得单选按钮 id。删除 RadioButton rb = (RadioButton) group.findViewById(checkedId);
您的代码应如下所示:
radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
switch (checkedId) {
case R.id.radioButtonLondon:
tClock.setTimeZone("Europe/London");
break;
case R.id.radioButtonBeijing:
tClock.setTimeZone("CST6CDT");
break;
case R.id.radioButtonNewYork:
tClock.setTimeZone("America/New_York");
break;
}
// End switch block
//}
}
});
关于java - RadioGroup 和checkedId,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41428456/
Android 上的动态表单可能非常困惑,我遇到过这种特殊情况,我通过 RadioGroup 和 AppCompatRadioButton 创建了一个选项列表,其中checkedId 与动态 Radi
我是一名优秀的程序员,十分优秀!