Как получить дату рождения от календаря в Android?

Я новичок в Android. мой макет как:

<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>

У меня есть поле ввода и кнопка. Когда я нажимаю кнопку, я хочу открыть календарь и выбрать дату из календаря, а выбранная дата должна быть установлена ​​в поле ввода. Пожалуйста, помогите любому приятелю. Заранее спасибо.!!

5 ответов

Решение

Вызов метода SelectDate для просмотра текста или нажатия кнопки или редактирования текста

 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(" "));

    }
};

Вы можете использовать DatePicker, чтобы выбрать дату.

проверьте эту ссылку

пример ссылки

http://www.mkyong.com/android/android-date-picker-example/

Ссылка на Android

http://developer.android.com/reference/android/widget/DatePicker.html

Вы можете использовать DatePicker, чтобы выбрать дату. Это соответствует вашим потребностям?

Попробуйте что-то вроде этого:

button.setOnClickListener(new View.OnClickListener(){
   @Override
   public void onClick(View v) {
      Dialog dlg = new DatePickerDialog(YourActivity.this, new DatePickerDialog.OnDateSetListener() {
         public void onDateSet(DatePicker view, int year, int month, int day) {
            yourEditText.setText(String.format("%02d.%02d.%04d", day, month+1, year);
         }
      }
   }
});

Вы также можете установить свой текст редактирования не для фокусировки, чтобы предотвратить ввод значения вручную

Я сделал это, и это сработало для меня!

Метод открытия всплывающего окна DatePickerDialog

      public void openDatePickerDialog(final View v) {

    Calendar cal = Calendar.getInstance();
    // Get Current Date
    DatePickerDialog datePickerDialog = new DatePickerDialog(this,
            (view, year, monthOfYear, dayOfMonth) -> {
                String selectedDate = dayOfMonth + "/" + (monthOfYear + 1) + "/" + year;
                switch (v.getId()) {
                    case R.id.editTextDob:
                        ((EditText)v).setText(selectedDate);
                        dob = selectedDate;
                        Log.e("DOB selected",dob);
                        break;
                }
            }, cal.get(Calendar.YEAR), cal.get(Calendar.MONTH), cal.get(Calendar.DAY_OF_MONTH));


    datePickerDialog.getDatePicker().setMaxDate(cal.getTimeInMillis());
    datePickerDialog.show();
}

Затем просто вызовите описанный выше метод onClick listener Insider onCreateActivity.

      edtDOB.setOnFocusChangeListener(new View.OnFocusChangeListener() {
        @Override
        public void onFocusChange(View view, boolean hasFocus) {
            if (hasFocus){
                openDatePickerDialog(view);
            }
        }
    });
edtDOB.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            openDatePickerDialog(view);
        }
    });
Другие вопросы по тегам