Подтвердить что ты не робот

Datepicker: как всплывать datepicker при нажатии на кнопку и хранить значение в переменной

Я хочу показать всплывающее окно datepicker. Я нашел несколько примеров, но я не получаю их должным образом. У меня есть одна кнопка, и я хочу, чтобы, когда я нажимаю кнопку, открывается диалоговое окно datepicker и после установки даты дата должна храниться в переменной. PLease предоставит мне пример кода или хорошие ссылки.

4b9b3361

Ответ 1

Сделайте этот класс внутренним классом в своей деятельности

если вы хотите установить текущую дату в качестве даты, которую вы видите при открытии datePicker. Вы можете сделать это так:

Calendar c = Calendar.getInstance();
int startYear = c.get(Calendar.YEAR);
int startMonth = c.get(Calendar.MONTH);
int startDay = c.get(Calendar.DAY_OF_MONTH);

class StartDatePicker extends DialogFragment implements DatePickerDialog.OnDateSetListener{
    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        // Use the current date as the default date in the picker
        DatePickerDialog dialog = new DatePickerDialog(BookingFormActivity.this, this, startYear, startMonth, startDay);
 return dialog;

    }
    public void onDateSet(DatePicker view, int year, int monthOfYear,
            int dayOfMonth) {
        // TODO Auto-generated method stub
        // Do something with the date chosen by the user
        startYear = year;
        startMonth = monthOfYear;
        startDay = dayOfMonth;
        updateStartDateDisplay();


    }
    } 

вы можете вызвать это диалоговое окно, установив этот метод на onClick

  public void showStartDateDialog(View v){
    DialogFragment dialogFragment = new StartDatePicker();
    dialogFragment.show(getFragmentManager(), "start_date_picker");
    }

Ответ 2

Попробуйте это.

Используйте этот код при нажатии кнопки. Откроется диалоговое окно выбора даты.

            Calendar c = Calendar.getInstance();
    int mYear = c.get(Calendar.YEAR);
    int mMonth = c.get(Calendar.MONTH);
    int mDay = c.get(Calendar.DAY_OF_MONTH);
    System.out.println("the selected " + mDay);
    DatePickerDialog dialog = new DatePickerDialog(Registration.this,
            new mDateSetListener(), mYear, mMonth, mDay);
    dialog.show();

Затем необходимо записать класс mDateSetListener.

class mDateSetListener implements DatePickerDialog.OnDateSetListener {

        @Override
        public void onDateSet(DatePicker view, int year, int monthOfYear,
                int dayOfMonth) {
            // TODO Auto-generated method stub
            // getCalender();
            int mYear = year;
            int mMonth = monthOfYear;
            int mDay = dayOfMonth;
            v.setText(new StringBuilder()
                    // Month is 0 based so add 1
                    .append(mMonth + 1).append("/").append(mDay).append("/")
                    .append(mYear).append(" "));
            System.out.println(v.getText().toString());


        }
    }

Пожалуйста, проверьте этот ответ и проголосуйте.