androidandroid-layoutcalendarandroid-calendar

How to get the date of birth from the calender in android?


I am new in android. My layout is as:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/hello_world" />

    <EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="26-01-2010" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Calender" />

</LinearLayout>

I have a Edit Box and button. When I click on the Button, I want to open a calender and be able to pick a date from calender. Also, the selected date has to be set to the Edit Box.


Solution

  • Call method SelectDate on textview or button or editext click

     private void SelectDate() {
    
        final Calendar c = Calendar.getInstance();
        year = c.get(Calendar.YEAR);
        month = c.get(Calendar.MONTH);
        day = c.get(Calendar.DAY_OF_MONTH);
    
    
        showDialog(DATE_PICKER_ID);
    
    }
    
    @Override
    protected Dialog onCreateDialog(int id) {
        switch (id) {
            case DATE_PICKER_ID:
    
                // open datepicker dialog.
                // set date picker for current date
                // add pickerListener listner to date picker
                return new DatePickerDialog(this, pickerListener, year, month,day);
        }
        return null;
    }
    
    private DatePickerDialog.OnDateSetListener pickerListener = new DatePickerDialog.OnDateSetListener() {
    
        // when dialog box is closed, below method will be called.
        @Override
        public void onDateSet(DatePicker view, int selectedYear,
                              int selectedMonth, int selectedDay) {
    
            year  = selectedYear;
            month = selectedMonth;
            day   = selectedDay;
    
            // Show selected date
            birthdate_edt.setText(new StringBuilder().append(month + 1)
                    .append("-").append(day).append("-").append(year)
                    .append(" "));
    
        }
    };