Как получить дату рождения от календаря в 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);
}
});