我正在尝试在 listView 中实现一个日期选择器对话框。我可以显示日期选择器,但执行仍在继续。由于未选择日期,因此不会启动新的 Activity。有没有办法让我等到在对话框中选择日期?
代码:
public void onItemClick(AdapterView<?> a, View v, int position, long id) {
//creo el nuevo objeto para poder llamarlo
Intent intent = new Intent(getParent(), ProductosCategorias.class);
//Creo la informacion para pasar entre actividades
informacion.putString("nombreRango", fechas.get(position).getNombreRango());
informacion.putInt("cantidadEventos", fechas.get(position).getCantidadEventos());
if (fechas.get(position).getNombreRango().equals("Elegir Fecha")){
DatePickerDialog.OnDateSetListener date = new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear,
int dayOfMonth) {
// TODO Auto-generated method stub
myCalendar.set(Calendar.YEAR, year);
myCalendar.set(Calendar.MONTH, monthOfYear);
myCalendar.set(Calendar.DAY_OF_MONTH, dayOfMonth);
fecha = updateLabel();
System.out.println("FECHA DEVUETA: "+fecha);
String patronFecha = "dd/MM/yyyy";
SimpleDateFormat formatoFecha = new SimpleDateFormat(patronFecha);
try {
fechaHoyN = formatoFecha.parse(fecha);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("Fecha elegida: "+fecha);
finish=true;
}
};
new DatePickerDialog(getParent(), date, myCalendar
.get(Calendar.YEAR), myCalendar.get(Calendar.MONTH),
myCalendar.get(Calendar.DAY_OF_MONTH)).show();
}
else{
String patronFecha = "dd/MM/yyyy";String patronHora = "kk:mm";
SimpleDateFormat formatoFecha = new SimpleDateFormat(patronFecha);
SimpleDateFormat formatoHora = new SimpleDateFormat(patronHora);
String fechaString = formatoFecha.format(fechas.get(position).getFecha());
String horaString = formatoHora.format(fechas.get(position).getFecha());
informacion.putString("fecha", fechaString+" "+horaString);
finish=true;
}
if (finish){
try {
fechas.get(position).setFecha(fechaHoyN);
elegirFecha(fechas.get(position), eventos);
informacion.putString("fecha", fecha);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
intent.putExtras(informacion);
intent.putExtra("eventos",fechas.get(position).getEventos());
intent.putExtra("controlCategoriaFecha", true);
Toast.makeText(getApplicationContext(), "has seleccionado "+ fechas.get(position).getNombreRango(), Toast.LENGTH_SHORT).show();
TabGroupActivity parentActivity = (TabGroupActivity)getParent();
parentActivity.startChildActivity("EditActivity", intent);
}
}
});
我知道布尔完成的工作是在没有选择日期的情况下不执行活动。我这样做不是为了让应用程序崩溃