我做了一个radioGroup如上图,用的switch case, default放最后,
但运行后没有default值,一定要点击选中radioButton,才返回值。
附代码。怎样让这RadioGroup在不选中RadioButton的情况下,有默认值47呢
   @Override
        public void onCheckedChanged(RadioGroup group, int checkedId){
           switch (checkedId)
            {              case R.id.Cmajor:
                    n=47;
                    break;
                case R.id.Ebmajor:
                    n=44;
                    case R.id.Emajor:
                    n=43;
                    break;
                case R.id.Fmajor:
                    n=42;
                    break;
                case R.id.Cbmajor:
                    n=46;//47;
                    break;
                case R.id.Dmajor:
                    n=45;//46;
                    break;
                case R.id.Bmajor:
                    n=48;//49;
                   break;
                case R.id.Bbmajor:
                    n=49;//50;
                   break;
                case R.id.Amajor:
                    n=50;//51;
                    break;
                case R.id.Abmajor:
                    n=51;
                    break;
                case R.id.Gmajor:
                    n=52;//53;
                   break;
                case R.id.Gbmajor:
                    n=53;//54;
                    break;
               default:
                    n=47;
                    break;
            }

解决方案 »

  1.   

     你switch default 要执行了switch case都不满足条件才能调用default啊,1:你写个变量默认给个值47  
    2:进入程序手动调用下点击事件
      

  2.   

    你要明白,onCheckedChanged方法是radioButton的选中项改变之后才会调用,如果不改变它是不会调用的;radioButton的选中项改变了,那么它就必须会有一个checkedId,这个checkedId就是那个选中的radioButton,所以你这个switch永远不会跑到default那里去