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文の後にあるので、returnの前にある場合はDatePickerDialog – Android

+0

を返しません。したがって、 'break;'文を追加しようとしてもまったく役に立ちませんでした。 –

1

break;は:カント仕事は、このhttp://www.vogella.de/articles/AndroidDialogs/article.html

+0

を参照してください

場合 '破ります;'。問題は、Eclipseがここでエラーを投げ、 'break;'ステートメントが「到達不能コード」であるということです。 'return super.onCreateDialog(id)'を試しても、とにかくデフォルトのケースと同じ問題が発生します。 –

関連する問題