How to create a date and time picker in Android? [closed] How to create a date and time picker in Android? [closed] android android

How to create a date and time picker in Android? [closed]


Put both DatePicker and TimePicker in a layout XML.

date_time_picker.xml:

<?xml version="1.0" encoding="utf-8"?><LinearLayout     xmlns:android="http://schemas.android.com/apk/res/android"    android:orientation="vertical"    android:layout_width="match_parent"    android:padding="8dp"    android:layout_height="match_parent">    <DatePicker        android:id="@+id/date_picker"        android:layout_width="match_parent"        android:calendarViewShown="true"        android:spinnersShown="false"        android:layout_weight="4"        android:layout_height="0dp" />    <TimePicker        android:id="@+id/time_picker"        android:layout_weight="4"        android:layout_width="match_parent"        android:layout_height="0dp" />    <Button        android:id="@+id/date_time_set"        android:layout_weight="1"        android:layout_width="match_parent"        android:text="Set"        android:layout_height="0dp" /></LinearLayout>

The code:

final View dialogView = View.inflate(activity, R.layout.date_time_picker, null);final AlertDialog alertDialog = new AlertDialog.Builder(activity).create();dialogView.findViewById(R.id.date_time_set).setOnClickListener(new View.OnClickListener() {    @Override    public void onClick(View view) {         DatePicker datePicker = (DatePicker) dialogView.findViewById(R.id.date_picker);         TimePicker timePicker = (TimePicker) dialogView.findViewById(R.id.time_picker);         Calendar calendar = new GregorianCalendar(datePicker.getYear(),                            datePicker.getMonth(),                            datePicker.getDayOfMonth(),                            timePicker.getCurrentHour(),                            timePicker.getCurrentMinute());         time = calendar.getTimeInMillis();         alertDialog.dismiss();    }});alertDialog.setView(dialogView);alertDialog.show();


Use this function it will enable you to pic date and time one by one then set it to global variable date. No library no XML.

Calendar date;public void showDateTimePicker() {   final Calendar currentDate = Calendar.getInstance();   date = Calendar.getInstance();   new DatePickerDialog(context, new DatePickerDialog.OnDateSetListener() {       @Override       public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {            date.set(year, monthOfYear, dayOfMonth);            new TimePickerDialog(context, new TimePickerDialog.OnTimeSetListener() {                @Override                public void onTimeSet(TimePicker view, int hourOfDay, int minute) {                    date.set(Calendar.HOUR_OF_DAY, hourOfDay);                    date.set(Calendar.MINUTE, minute);                    Log.v(TAG, "The choosen one " + date.getTime());                }            }, currentDate.get(Calendar.HOUR_OF_DAY), currentDate.get(Calendar.MINUTE), false).show();       }   }, currentDate.get(Calendar.YEAR), currentDate.get(Calendar.MONTH), currentDate.get(Calendar.DATE)).show();}


There is nothing built into Android that offers this.

EDIT: Andriod now offers built-in pickers. Check @Oded answer