http://www.itstrike.cn/Question/682bf9dd-8ee1-4fbe-a392-18f91918e90b.html
一些奇怪的原因,当我点击积极按钮作为 DatePickerDialog 的一部分作为 DateSetListener 的一部分的 onDateSet 方法并不获取调用只有对三星设备。
这里是自己在做什么:
DateSetListener _datePickerDialogCallback = new DateSetListener();
DatePickerDialog _datePickerDialog = new DatePickerDialog(context, _datePickerDialogCallback, year, month, days);
_datePickerDialog.setButton(DialogInterface.BUTTON_POSITIVE, StringUtil.getString(R.string.command_ok), new DialogInterface.OnClickListener() {
public void onClick(DialogInterface arg0, int arg1) {
_done = true;
}
});
_datePickerDialog.show();
private class DateSetListener implements DatePickerDialog.OnDateSetListener {
public void onDateSet(DatePicker view, int year, int month, int day) {
Calendar calendar = Calendar.getInstance();
calendar.set(year, month, day, calendar.get(Calendar.HOUR_OF_DAY), calendar.get(Calendar.MINUTE),
calendar.get(Calendar.SECOND));
if (_done) {
_view.setText(formatDate(calendar.getTime()));
}
}
}
为什么这可能发生在任何建议将不胜感激。请注意这是仅在三星设备上
解决方法 1:
它看起来不需要定义 datePickerDialog 时定义从 ICS 和上面,回调。但是,onPositiveButtonClick 和 onNegativeButtonClick 要调用的回调。就像这样:
_datePickerDialog.setButton(DialogInterface.BUTTON_POSITIVE, "Ok", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface arg0, int arg1) {
_done = true;
DatePicker datePicker = _datePickerDialog.getDatePicker();
_datePickerDialogCallback.onDateSet(datePicker, datePicker.getYear(), datePicker.getMonth(), datePicker.getDayOfMonth());
}
});