baT*_*imá 0 eclipse android datepicker timepicker
我有一个onCreateDialog设置,我需要放置2个Dialogs(Datepicker和Timepicker),但当我把它们都放在onCreateDialog中时,它只打开第一个是Datepicker.
码:
@Override
protected Dialog onCreateDialog(int id) {
//date picker
switch (id) {
case DATE_DIALOG_ID:
// set date picker as current date
return new DatePickerDialog(this, datePickerListener, year, month,day);
}
//time picker
switch (id) {
case TIME_DIALOG_ID:
//set time picker as current time
return new TimePickerDialog(this, timePickerListener, hour, minute,false);
}
return null;
}
Run Code Online (Sandbox Code Playgroud)
是的,你可以,但你switch的无效.正确的语法switch是:
switch( variable ) {
case value1:
...
break;
case value X:
...
break;
}
Run Code Online (Sandbox Code Playgroud)
并可选择default捕获您没有明确指出的所有其他值case.你有两个没用的开关.你纠正的代码是:
AlertDialog myDialog = null;
switch (id) {
case DATE_DIALOG_ID:
// set date picker as current date
myDialog = new DatePickerDialog(this, datePickerListener, year, month,day);
break;
case TIME_DIALOG_ID:
//set time picker as current time
myDialog = new TimePickerDialog(this, timePickerListener, hour, minute,false);
break;
}
return myDialog;
Run Code Online (Sandbox Code Playgroud)
您的ID也必须是唯一的,但是一旦修复了switch,如果将它设置为相同的值,编译器将显示错误(因为case给定的值不能超过一个).
public static final int TIME_DIALOG_ID = 1;
public static final int DATE_DIALOG_ID = 2;
Run Code Online (Sandbox Code Playgroud)
编辑:我再次对此进行了重新设计,因为我个人不喜欢该方法的多个退出点 - 你有很多return.
| 归档时间: |
|
| 查看次数: |
1146 次 |
| 最近记录: |