studio programacion para móviles libro edición desarrollo desarrollar curso aprende aplicaciones android android-studio android-datepicker

para - manual de programacion android pdf



Cómo mostrar DatePickerDialog en el botón, haga clic en? (4)

El siguiente código funciona ...

datePickerButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { showDialog(0); } }); @Override @Deprecated protected Dialog onCreateDialog(int id) { return new DatePickerDialog(this, datePickerListener, year, month, day); } private DatePickerDialog.OnDateSetListener datePickerListener = new DatePickerDialog.OnDateSetListener() { public void onDateSet(DatePicker view, int selectedYear, int selectedMonth, int selectedDay) { day = selectedDay; month = selectedMonth; year = selectedYear; datePickerButton.setText(selectedDay + " / " + (selectedMonth + 1) + " / " + selectedYear); } };

Estoy desarrollando una aplicación que requiere que el usuario seleccione la fecha (dd / mm / aaaa). Quiero mostrar un cuadro de diálogo con DatePicker al hacer clic en el botón. una vez que se selecciona la fecha, debe aparecer en EditText.

Estoy usando Android Studio 2.2, proyecto con min sdk es 23.

Amablemente ayúdame a hacer el código requerido.


esto funciona para mi. si desea habilitar el tiempo futuro para elegir, debe eliminar maxDate.

btnDate.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { DialogFragment newFragment = new DatePickerFragment(); newFragment.show(getSupportFragmentManager(), "datePicker"); } }); public static class DatePickerFragment extends DialogFragment implements DatePickerDialog.OnDateSetListener { @Override public Dialog onCreateDialog(Bundle savedInstanceState) { final Calendar c = Calendar.getInstance(); int year = c.get(Calendar.YEAR); int month = c.get(Calendar.MONTH); int day = c.get(Calendar.DAY_OF_MONTH); DatePickerDialog dialog = new DatePickerDialog(getActivity(), this, year, month, day); dialog.getDatePicker().setMaxDate(c.getTimeInMillis()); return dialog; } public void onDateSet(DatePicker view, int year, int month, int day) { btnDate.setText(ConverterDate.ConvertDate(year, month + 1, day)); } }


I. En su build.gradle agregue la última biblioteca de appcompat, en ese momento 24.2.1

dependencies { compile ''com.android.support:appcompat-v7:X.X.X'' // where X.X.X version }

II. Haga que su actividad amplíe android.support.v7.app.AppCompatActivity e implemente la interfaz DatePickerDialog.OnDateSetListener .

public class MainActivity extends AppCompatActivity implements DatePickerDialog.OnDateSetListener {

III. Cree su DatePickerDialog estableciendo un contexto, la implementación del oyente y el año de inicio, el mes y el día del selector de fecha.

DatePickerDialog datePickerDialog = new DatePickerDialog( context, MainActivity.this, startYear, starthMonth, startDay);

IV. Muestre su diálogo en el oyente de evento click de su botón

((Button) findViewById(R.id.myButton)) .setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { datePickerDialog.show(); } });


DatePickerDialog StartTime = new DatePickerDialog(this, new DatePickerDialog.OnDateSetListener() { public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) { Calendar newDate = Calendar.getInstance(); newDate.set(year, monthOfYear, dayOfMonth); activitydate.setText(dateFormatter.format(newDate.getTime())); } }, newCalendar.get(Calendar.YEAR), newCalendar.get(Calendar.MONTH), newCalendar.get(Calendar.DAY_OF_MONTH)); btn_checkin.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { StartTime .show(): });