我使用TimePickerDialog
方法onTimeSet()
。我在cancel
添加了onClickListener
按钮
我的问题是当我单击cancel
按钮时,会调用onTimeSet()方法。为什么?有什么方法可以解决这个问题吗?
// Create timePicker and set listener
timeListener = new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
};
timePicker = new TimePickerDialog(RS_CreateTripActivity.this,
timeListener, hour, min, false);
timePicker.setCanceledOnTouchOutside(false);
timePicker.setCancelable(false);
// Set negative button click listener
timePicker.setButton(DialogInterface.BUTTON_NEGATIVE, "Cancel",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
datePicker.dismiss();
}
});
我尝试将positive
按钮设置为onClickListener
,但在这种情况下,我无法让用户选择时间。如果有人告诉我如何在onClickListener
内获得时间,那么它也可以解决我的问题。
答案 0 :(得分:2)
你必须这样使用。
private TimePickerDialog.OnTimeSetListener mTimeSetListener =
new TimePickerDialog.OnTimeSetListener() {
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
mHour = hourOfDay;
mMinute = minute;
time = ""+mHour+":"+mMinute;
}
};
@Override
protected Dialog onCreateDialog(int id) {
switch (id) {
case TIME_DIALOG_ID:
TimePickerDialog myTime = new TimePickerDialog(this,mTimeSetListener, h, m, false);
myTime(new DialogInterface.OnCancelListener(){
@Override
public void onCancel(DialogInterface arg0) {
//your cancel task.
}
);//For cancel button
return myTime; //Return the dialog
break;
return null;
}
这就像魅力一样。
答案 1 :(得分:1)
DatePickerDialog和TimePickerDialog存在问题(问题#34833)。您可以使用计数器作为解决此问题的解决方法。 PLS。请参阅:Date Picker with cancel option in android