timerRadio = (RadioButton)findViewById(R.id.timer);
triggerRadio = (RadioButton)findViewById(R.id.trigger);//给RadioGroup设置事件监听
radioGroupSet2.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
// TODO Auto-generated method stub
if((timerRadio.getId()) ==checkedId){
。
}else{
。
}
}
});
在运行程序的时候出现错误,提示出现错误,错误在timerRadio。getId()这行,我将程序改为如下radioGroupSet2.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
// TODO Auto-generated method stub
if((R.id.timer) ==checkedId){
。
}else{
。
}
}
}); 可以运行。为什么会这样啊。
凡是在程序中要用到timerRadio 的方法都会运行失败,有错误,比如timerRadio.setChecked()等等,跟timerRadio有关的方法时都出错,我注释掉就可以了。怎么解决啊。
switch(checkedId):
case R.id. 。
但是 我在前面写了 timerRadio = (RadioButton)findViewById(R.id.timer);
嗯,我知道了。不过我就三个raidogroup 以后也不会增加。
其实主要不是写不写成switch 的问题,而是我现在所说的问题
无法用timerRaido.***的任何方法,编译没有问题,但是运行就失败了。只能替换成R.id.timer!
case expressions must be constant expressions(case表达式必须是常量表达式)
也就是说timerRadio.getId()是个变量,不符合java语法规范。真心建议楼主使用switch-case啊