Как открыть окно выбора времени после выбора даты в окне выбора даты - PullRequest
0 голосов
/ 25 октября 2019

когда сборщик даты возвращает selected date, код должен автоматически отображать сборщик времени. когда таймер возвращается, действие должно "Toast" выбрать дату и время.

FloatingActionButton dateFab = findViewById(R.id.datePicker);
       dateFab.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                //Open Date Picker Fragment

            DatePickerFragment newFragment = new DatePickerFragment();
            newFragment.setListener(MainActivity.this);
            newFragment.show(getSupportFragmentManager(),
                    "Pick the Date");
            TimePickerFragment newFragment1 = new TimePickerFragment();
            newFragment1.setListener(MainActivity.this);
            newFragment1.show(getSupportFragmentManager(),
                    "Pick the Time");

        }
    });

}

1 Ответ

0 голосов
/ 25 октября 2019

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

 private void showDatePickerDialog(final EditText etDates) {
    final Calendar c = Calendar.getInstance();
    int mYear = c.get(Calendar.YEAR);
    int mMonth = c.get(Calendar.MONTH);
    int mDay = c.get(Calendar.DAY_OF_MONTH);


    DatePickerDialog datePickerDialog = new DatePickerDialog(mContext,
            new DatePickerDialog.OnDateSetListener() {

                @Override
                public void onDateSet(DatePicker view, int year,
                                      int monthOfYear, int dayOfMonth) {


                    etDates.setText( (monthOfYear + 1) + "-" + dayOfMonth + "-" +year 
                    showTimePickerDialog(etTime);

                }
            }, mYear, mMonth, mDay);
    datePickerDialog.setTitle("Select Date");
    datePickerDialog.show();

}

private void showTimePickerDialog(final EditText etTime) {
    Calendar mcurrentTime = Calendar.getInstance();
    int hour = mcurrentTime.get(Calendar.HOUR_OF_DAY);
    int minute = mcurrentTime.get(Calendar.MINUTE);
    TimePickerDialog mTimePicker;
    mTimePicker = new TimePickerDialog(mContext, new TimePickerDialog.OnTimeSetListener() {
        @Override
        public void onTimeSet(TimePicker timePicker, int selectedHour, int selectedMinute) {
            etTime.setText(selectedHour + ":" + selectedMinute);
        }
    }, hour, minute, true);//Yes 24 hour time
    mTimePicker.setTitle("Select Time");
    mTimePicker.show();
}
...