Toast 不会显示在 Android DatePickerDialog 中
Toast won't show inside Android DatePickerDialog
我有 pickDateTime 功能,限制用户选择过去的时间。当前时间 - 是允许的 "minimum" 时间。
这是函数:
public void pickDateTime(View view) {
Calendar c = Calendar.getInstance();
currentYear = c.get(Calendar.YEAR);
currentMonth = c.get(Calendar.MONTH);
currentDay = c.get(Calendar.DAY_OF_MONTH);
currentHour = c.get(Calendar.HOUR_OF_DAY);
currentMinute = c.get(Calendar.MINUTE);
DatePickerDialog datePickerDialog = new DatePickerDialog(NewMissionUser.this
, new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker datePicker, int year, int month, int day) {
Log.d(TAG,"Chose: year: " + year + " , month: " + (month+1) + " day: " + day);
missionYear = year;
missionMonth = (month+1);
missionDay = day;
TimePickerDialog timePickerDialog = new TimePickerDialog(NewMissionUser.this, new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker timePicker, int hourOfDay, int minute) {
missionTime = missionDay+"/"+missionMonth+"/"+missionYear + " " +hourOfDay + ":" + minute;
Log.d(TAG,"missionTime: " + missionTime);
if (isPast(missionTime)){
Log.d(TAG,"mission time in past!");
Toast.makeText(getApplicationContext(), "APP Mission inserted in past, ignoring date, default date is now.",Toast.LENGTH_LONG);
Toast.makeText(NewMissionUser.this, "Mission inserted in past, ignoring date, default date is now.",Toast.LENGTH_LONG);
Toast.makeText(getBaseContext(), "BASE Mission inserted in past, ignoring date, default date is now.",Toast.LENGTH_LONG);
missionTime = currentDay+"/"+currentMonth+"/"+currentYear + " " +currentHour + ":" + currentMinute;
}
}
},currentHour, currentMinute, true);
timePickerDialog.show();
}
},currentYear, currentMonth, currentDay);
datePickerDialog.show();
}
这是class:
public class NewMissionUser extends AppCompatActivity implements PopupMenu.OnMenuItemClickListener, GmapFragmentNewMission.TextClicked
问题是,在这两种尝试中,Toast 都不会出现。
日志确实出现了,并且在调试中我看到代码到达了这一点并且 isPast 函数的行为符合预期。
为什么 Toast 不出现?谢谢
您错过了对 show() Toast
:
的呼叫
Toast.makeText(getApplicationContext(), "...",Toast.LENGTH_LONG).show();
我有 pickDateTime 功能,限制用户选择过去的时间。当前时间 - 是允许的 "minimum" 时间。
这是函数:
public void pickDateTime(View view) {
Calendar c = Calendar.getInstance();
currentYear = c.get(Calendar.YEAR);
currentMonth = c.get(Calendar.MONTH);
currentDay = c.get(Calendar.DAY_OF_MONTH);
currentHour = c.get(Calendar.HOUR_OF_DAY);
currentMinute = c.get(Calendar.MINUTE);
DatePickerDialog datePickerDialog = new DatePickerDialog(NewMissionUser.this
, new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker datePicker, int year, int month, int day) {
Log.d(TAG,"Chose: year: " + year + " , month: " + (month+1) + " day: " + day);
missionYear = year;
missionMonth = (month+1);
missionDay = day;
TimePickerDialog timePickerDialog = new TimePickerDialog(NewMissionUser.this, new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker timePicker, int hourOfDay, int minute) {
missionTime = missionDay+"/"+missionMonth+"/"+missionYear + " " +hourOfDay + ":" + minute;
Log.d(TAG,"missionTime: " + missionTime);
if (isPast(missionTime)){
Log.d(TAG,"mission time in past!");
Toast.makeText(getApplicationContext(), "APP Mission inserted in past, ignoring date, default date is now.",Toast.LENGTH_LONG);
Toast.makeText(NewMissionUser.this, "Mission inserted in past, ignoring date, default date is now.",Toast.LENGTH_LONG);
Toast.makeText(getBaseContext(), "BASE Mission inserted in past, ignoring date, default date is now.",Toast.LENGTH_LONG);
missionTime = currentDay+"/"+currentMonth+"/"+currentYear + " " +currentHour + ":" + currentMinute;
}
}
},currentHour, currentMinute, true);
timePickerDialog.show();
}
},currentYear, currentMonth, currentDay);
datePickerDialog.show();
}
这是class:
public class NewMissionUser extends AppCompatActivity implements PopupMenu.OnMenuItemClickListener, GmapFragmentNewMission.TextClicked
问题是,在这两种尝试中,Toast 都不会出现。 日志确实出现了,并且在调试中我看到代码到达了这一点并且 isPast 函数的行为符合预期。
为什么 Toast 不出现?谢谢
您错过了对 show() Toast
:
Toast.makeText(getApplicationContext(), "...",Toast.LENGTH_LONG).show();