Current date in DatePickerDialog

2

When I open my DataPickerDialog I get the wrong date, exactly 9/8/21, how can I make it default by today? However in my EditText by default the date of today's date comes out.

My code:

public class Main2Activity extends AppCompatActivity {

    private TextView editTextFecha;
    private int dia, mes, ano, hora, minutos;
    private static final int TIPO_DIALOGO = 0;
    private static DatePickerDialog.OnDateSetListener selectorFecha;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);

        editTextFecha = (TextView) findViewById(R.id.editTextFecha);

        Calendar calendario = Calendar.getInstance();
        dia = calendario.get(Calendar.DAY_OF_MONTH);
        mes = calendario.get(Calendar.MONTH);
        ano = calendario.get(Calendar.YEAR);
        hora = calendario.get(Calendar.HOUR_OF_DAY);
        minutos = calendario.get(Calendar.MINUTE);
        mostrarFecha();

        selectorFecha = new DatePickerDialog.OnDateSetListener() {
            @Override
            public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {
                dia = dayOfMonth;
                mes = month;
                ano = year;
                mostrarFecha();
                mostrarHora();
            }
        };

    }

    @Override
    protected Dialog onCreateDialog(int id) {
        switch (id) {
            case 0:
                return new DatePickerDialog(this, selectorFecha, dia, mes, ano);
        }
        return null;
    }

    public void mostrarCalendario(View control) {
        showDialog(TIPO_DIALOGO);
    }


    public void mostrarFecha() {
        editTextFecha.setText(dia + "/" + (mes + 1) + "/" + ano + " " + hora + ":" + String.format("%02d", minutos));

    }

    private void mostrarHora() {
        TimePickerDialog timePickerDialog = new TimePickerDialog(this, new TimePickerDialog.OnTimeSetListener() {
                    @Override
                    public void onTimeSet(TimePicker view, int hourOfDay,
                                          int minute) {
                        hora = hourOfDay;
                        minutos = minute;
                        mostrarFecha();
                    }
                }, hora, minutos, true);
        timePickerDialog.show();
    }
}
    
asked by UserNameYo 16.02.2017 в 23:01
source

1 answer

1

On the following line:

return new DatePickerDialog(this, selectorFecha, dia, mes, ano);

... the parameters of day, month and year are happening in the wrong order. It should be like this:

return new DatePickerDialog(this, selectorFecha, ano, mes, dia);
    
answered by 17.02.2017 / 14:32
source