2012-03-01 4 views
0

일부 맞춤 대화 상자를 프로그래밍 중이므로 showDialog 메소드로 문제가 발생했습니다. 어떤 이유에서, 내가 showDialog 메소드를 만들고자하는 Dialog의 id를 넘길 때, 그것은 의도 된 케이스와 디폴트 케이스를 모두 실행합니다. 첫 번째 사례에서Android - showDialog 메소드, switch 문의 기본 설정 문제

protected Dialog onCreateDialog(int id) { 
    switch (id) { 
    case DATE_DIALOG_ID: 

     Calendar c = Calendar.getInstance(); 
     mYear = c.get(c.YEAR); 
     mMonth = c.get(c.MONTH); 
     mDay = c.get(c.DAY_OF_MONTH); 

     return new DatePickerDialog(this, 
        mDateSetListener, 
        mYear, mMonth, mDay); 
    default: 
     return null; 
    } 
} 

답변

1

는 다음 코드를 사용하여 코드를 업데이트 내가 해봤

DatePickerDialog dpd = null; 

protected Dialog onCreateDialog(int id) { 
    switch (id) { 
    case DATE_DIALOG_ID: 

     Calendar c = Calendar.getInstance(); 
     mYear = c.get(c.YEAR); 
     mMonth = c.get(c.MONTH); 
     mDay = c.get(c.DAY_OF_MONTH); 

     dpd = new DatePickerDialog(this, mDateSetListener, mYear, mMonth, mDay); 
    break;  // you forgot this line in your code 
    default: 
     return null; 
    } 
} 
+0

Eclipse는'break; '와 함께 오류를 발생시킵니다. –

+0

break가 return 문 다음에 있기 때문에 반환 전에는 DatePickerDialog – Android

+0

을 반환하지 않습니다. 따라서 'break;'문을 추가하려고해도 전혀 도움이되지 않습니다. –

1
+0

를 참조

경우'휴식;'. 문제는 이클립스가 여기에 'break;'문장이 "도달 할 수없는 코드"라는 오류를 던진다는 것이다. 'return super.onCreateDialog (id) '를 시도해도 어쨌든 처리되는 기본 경우와 동일한 문제가 발생합니다. –