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有关的方法时都出错,我注释掉就可以了。怎么解决啊。

解决方案 »

  1.   

    估计是你 timerRadio = (RadioButton)findViewById(R.id.timer);  这里写的地方不对,没有执行到
      

  2.   

    建议楼主用switch来写,因为如果你的RadioGroup增加到很多个的时候,if-else写起来就很麻烦了,代码阅读就不方便。
    switch(checkedId):
    case R.id. 。
      

  3.   

    timerRadio.getId()  用sysout.out.println()输出来看一下,看有是什么值
      

  4.   


    但是 我在前面写了 timerRadio = (RadioButton)findViewById(R.id.timer);
      

  5.   


    嗯,我知道了。不过我就三个raidogroup 以后也不会增加。
    其实主要不是写不写成switch 的问题,而是我现在所说的问题
      

  6.   


    无法用timerRaido.***的任何方法,编译没有问题,但是运行就失败了。只能替换成R.id.timer!
      

  7.   

    按照楼主的方法我写了一下,发现错误提示:
    case expressions must be constant expressions(case表达式必须是常量表达式)
    也就是说timerRadio.getId()是个变量,不符合java语法规范。真心建议楼主使用switch-case啊