为什么 Timepicker 打不开?
Why Timepicker is not opening?
我正在尝试检查所选时间是否介于 11:30 - 14:30 或 17:00 - 22:30 之间。如果是,则检查时间是否早于当前时间 +20 分钟(或 +45 分钟)。
rdi_preorder.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
if (b) {
EventBus.getDefault().postSticky(new EnableButtonNext(true));
final Calendar c = Calendar.getInstance();
int mHour = c.get(Calendar.HOUR_OF_DAY);
int mMin = c.get(Calendar.MINUTE);
final int currentHour = c.get(Calendar.HOUR_OF_DAY);
final int currentMinute = c.get(Calendar.MINUTE);
final int date = c.get(Calendar.DAY_OF_MONTH);
final int month = c.get(Calendar.MONTH);
final int year = c.get(Calendar.YEAR);
final TimePickerDialog timePickerDialog = new TimePickerDialog(getActivity(),
new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker timePicker, int hour, int min) {
selectedHour = hour;
selectedMin = min;
if (rdi_pickup.isChecked()) {
if (checkOpenTime(selectedHour, selectedMin))
if ((selectedDate == date && selectedMonth == month && selectedYear == year) &&
selectedHour * 60 + selectedMin < (currentHour * 60 + currentMinute + 20)) {
Toast.makeText(getContext(), "We are not able to finish your order so fast !Please preorder ahead!", Toast.LENGTH_SHORT).show();
if (rdi_now.getVisibility() == View.VISIBLE)
rdi_now.setChecked(true);
rdi_preorder.setChecked(false);
} else {
time_preorder = String.format("%2s:%2s %2s.%2s.%4s", selectedHour, selectedMin, selectedDate, selectedMonth, selectedYear);
txt_time.setVisibility(View.VISIBLE);
txt_time.setText(new StringBuilder("fur ").append(time_preorder).toString());
}
else {
Toast.makeText(getContext(), "Please order in our open times!", Toast.LENGTH_SHORT).show();
rdi_preorder.setChecked(false);
}
} else if (rdi_delivery.isChecked()) {
if (checkOpenTime(selectedHour, selectedMin)) {
if ((selectedDate == date && selectedMonth == month && selectedYear == year) &&
selectedHour * 60 + selectedMin < (currentHour * 60 + currentMinute + 45)) {
Toast.makeText(getContext(), "We are not able to deliver your order so fast !Please preorder ahead!", Toast.LENGTH_SHORT).show();
if (rdi_now.getVisibility() == View.VISIBLE)
rdi_now.setChecked(true);
rdi_preorder.setChecked(false);
}
else {
time_preorder = String.format("%2s:%2s %2s.%2s.%4s", selectedHour, selectedMin, selectedDate, selectedMonth, selectedYear);
txt_time.setVisibility(View.VISIBLE);
txt_time.setText(new StringBuilder("fur ").append(time_preorder).toString());
}
else
Toast.makeText(getContext(), "Please order in our open times!", Toast.LENGTH_SHORT).show();
rdi_preorder.setChecked(false);} } }
}, mHour, mMin, true);
timePickerDialog.setOnCancelListener(new DialogInterface.OnCancelListener() {
@Override
public void onCancel(DialogInterface dialogInterface) {
}}); } }}
我想测试我的代码,但是如果我单击 rdi_preorder,日期和时间选择器不会打开。请帮忙
调用 timePickerDialog.show()
让对话框出现在屏幕上
我正在尝试检查所选时间是否介于 11:30 - 14:30 或 17:00 - 22:30 之间。如果是,则检查时间是否早于当前时间 +20 分钟(或 +45 分钟)。
rdi_preorder.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
if (b) {
EventBus.getDefault().postSticky(new EnableButtonNext(true));
final Calendar c = Calendar.getInstance();
int mHour = c.get(Calendar.HOUR_OF_DAY);
int mMin = c.get(Calendar.MINUTE);
final int currentHour = c.get(Calendar.HOUR_OF_DAY);
final int currentMinute = c.get(Calendar.MINUTE);
final int date = c.get(Calendar.DAY_OF_MONTH);
final int month = c.get(Calendar.MONTH);
final int year = c.get(Calendar.YEAR);
final TimePickerDialog timePickerDialog = new TimePickerDialog(getActivity(),
new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker timePicker, int hour, int min) {
selectedHour = hour;
selectedMin = min;
if (rdi_pickup.isChecked()) {
if (checkOpenTime(selectedHour, selectedMin))
if ((selectedDate == date && selectedMonth == month && selectedYear == year) &&
selectedHour * 60 + selectedMin < (currentHour * 60 + currentMinute + 20)) {
Toast.makeText(getContext(), "We are not able to finish your order so fast !Please preorder ahead!", Toast.LENGTH_SHORT).show();
if (rdi_now.getVisibility() == View.VISIBLE)
rdi_now.setChecked(true);
rdi_preorder.setChecked(false);
} else {
time_preorder = String.format("%2s:%2s %2s.%2s.%4s", selectedHour, selectedMin, selectedDate, selectedMonth, selectedYear);
txt_time.setVisibility(View.VISIBLE);
txt_time.setText(new StringBuilder("fur ").append(time_preorder).toString());
}
else {
Toast.makeText(getContext(), "Please order in our open times!", Toast.LENGTH_SHORT).show();
rdi_preorder.setChecked(false);
}
} else if (rdi_delivery.isChecked()) {
if (checkOpenTime(selectedHour, selectedMin)) {
if ((selectedDate == date && selectedMonth == month && selectedYear == year) &&
selectedHour * 60 + selectedMin < (currentHour * 60 + currentMinute + 45)) {
Toast.makeText(getContext(), "We are not able to deliver your order so fast !Please preorder ahead!", Toast.LENGTH_SHORT).show();
if (rdi_now.getVisibility() == View.VISIBLE)
rdi_now.setChecked(true);
rdi_preorder.setChecked(false);
}
else {
time_preorder = String.format("%2s:%2s %2s.%2s.%4s", selectedHour, selectedMin, selectedDate, selectedMonth, selectedYear);
txt_time.setVisibility(View.VISIBLE);
txt_time.setText(new StringBuilder("fur ").append(time_preorder).toString());
}
else
Toast.makeText(getContext(), "Please order in our open times!", Toast.LENGTH_SHORT).show();
rdi_preorder.setChecked(false);} } }
}, mHour, mMin, true);
timePickerDialog.setOnCancelListener(new DialogInterface.OnCancelListener() {
@Override
public void onCancel(DialogInterface dialogInterface) {
}}); } }}
我想测试我的代码,但是如果我单击 rdi_preorder,日期和时间选择器不会打开。请帮忙
调用 timePickerDialog.show()
让对话框出现在屏幕上