android代码似乎在使用switch语句时出错

时间:2011-06-16 14:01:04

标签: java android

我正在尝试使用switch语句用于radiobutton,但是当我运行它时我会出错。有人可以帮帮我。我已经粘贴了我的android代码。如果你知道答案,请帮忙。非常感谢。

package apt.tutorial;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.RadioGroup;
import android.R;

public class LunchtimeActivity extends Activity {

    Restaurant r=new Restaurant();

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        Button save=(Button)findViewById(R.id.button1);
        save.setOnClickListener(onSave);
    }

    private View.OnClickListener onSave=new View.OnClickListener() {
        public void onClick(View v) {
            EditText name=(EditText)findViewById(R.id.text1);
            EditText address=(EditText)findViewById(R.id.text2);

            r.setName(name.getText().toString());
            r.setAddress(address.getText().toString());

            RadioGroup types=(RadioGroup)findViewById(R.id.types);

            switch (types.GetCheckedRadiobuttonId()) {
                case R.id.Sit-Down:
                    r.setType("Sit_Down");
                    break;
                case R.id.Take-Out:
                    r.setType("Take_Out");
                    break;
                case R.id.Delivery:
                    r.setType("Delivery");
                    break;
            }
        }
    };
}

3 个答案:

答案 0 :(得分:1)

我可以看到以下问题:

  1. 你已经导入了android.R类,它显然没有这些字段(例如Sit-Down等
  2. 您正在调用一个不存在的RadioGroup方法,从GetCheckedRadiobuttonId更改为getCheckedRadioButtonId
  3. Id只能包含允许Java变量名称的字符,因此Sit-Down无效的标识符。

答案 1 :(得分:0)

我认为问题在于:

case R.id.Sit-Down:
case R.id.Take-Out:

不使用“ - ”重命名此ID。

答案 2 :(得分:0)

您需要捕获视图中的单选按钮以及无线电组

RadioButton sitdown = (RadioButton) findViewByid(R.id.Sit-Down);