1

我正在尝试在 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);
}                       
}

});

我知道布尔完成的工作是在没有选择日期的情况下不执行活动。我这样做不是为了让应用程序崩溃

4

0 回答 0