2013-01-14 14 views
1

이 메서드는 단추의 "OnClick 속성"에 할당 된 이름 때문에 호출됩니다. 아래 코드에서 올바른 코드가 무엇이어야합니다. 상수이어야한다는 오류가 나타납니다. 표현은 경우에.라디오 버튼 활동 소스 코드

public void onClick(View view) { 
switch (view.getId()) { 
case R.id.button1: 
    RadioButton AButton = (RadioButton) findViewById(R.id.radio0); 
    RadioButton BButton = (RadioButton) findViewById(R.id.radio1); 
    if (text.getText().length() == 0) { 
    Toast.makeText(this, "Please enter a valid number", 
     Toast.LENGTH_LONG).show(); 
    return; 
    } 
+1

을 읽을 수 있습니까? –

+0

왜 그 버튼에 바로 'OnClickListener'를 등록하지 않으시겠습니까? – Chan

+2

이것은 귀하의 문제 일 수 있습니다. http://stackoverflow.com/questions/9092712/switch-case-statement-error-case-expressions-must-be-constant-expression –

답변

1

당신은 라이브러리로 표시됩니다 프로젝트에서이 코드를 사용해야합니다. 그것은 무엇입니까?

그렇다면 view.getId() 값을 상수로 사용할 수 없음을 이해해야합니다. 그런 프로젝트에서는 else 문을 사용할 수 있습니다.

기본 프로젝트에서 동일한 ID를 가진 리소스를 정의했다면 잘못된 결과가 반환되거나 초기화 될 수 있습니다. 이것은 디버깅하기가 더 어려워지는 상황을 피하기위한 것입니다.

if - else 문을 사용하십시오.

또한 ADT 버전을 기억하지 않지만 해당 뷰 ID는 상수로 간주되지 않습니다.