Выбор даты и времени через DialogFragment

Я просто хочу создать указатель даты и времени в классе Fragment. поэтому я напрямую расширяю свой фрагмент до фрагмента диалога и перезаписываю onCreateDialog. Таким образом, благодаря этому я успешно создаю Date Picker, но я хочу создать Time Picker сразу после Date Picker.... так как я могу это сделать, потому что в onCreateDialog мы не можем передать id... вот мой код:

public class DetailsFragment extends DialogFragment implements DatePickerDialog.OnDateSetListener, TimePickerDialog.OnTimeSetListener{
    Button serviceCenterName;
    Dialog dialog; Boolean isvalue;
    public DetailsFragment() {
        // Required empty public constructor
    }

    @Override
    public void onCreate(@Nullable Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             final Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        view=inflater.inflate(R.layout.fragment_booking_details, container, false);
        serviceCenterName=(Button)view.findViewById(R.id.serviceCentername);

        serviceCenterName.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                dialog = onCreateDialog(savedInstanceState);
                dialog.show();
            }
        });
        return view;
    }
    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {


            final Calendar calendar = Calendar.getInstance();
            int yy = calendar.get(Calendar.YEAR);
            int mm = calendar.get(Calendar.MONTH);
            int dd = calendar.get(Calendar.DAY_OF_MONTH);
            return new DatePickerDialog(getActivity(), this, yy, mm, dd);

            /*final Calendar c = Calendar.getInstance();
            mHour = c.get(Calendar.HOUR_OF_DAY);
            mMinute = c.get(Calendar.MINUTE);

            return new TimePickerDialog(getActivity(),this,mHour,mMinute,false);*/

    }

    public void onDateSet(DatePicker view, int yy, int mm, int dd) {
        populateSetDate(yy, mm+1, dd);


    }
    public void populateSetDate(int year, int month, int day) {
        Log.d("date",month+"/"+day+"/"+year);
    }

    @Override
    public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
    populateTime(hourOfDay,minute);
    }

    public void populateTime(int hour, int min) {
        Log.d("Time : ",hour+"/"+min);
    }



      }

1 ответ

Код для выбора даты внутри слушателя onClick

 // Get Current Date
    final Calendar c = Calendar.getInstance();
    mYear = c.get(Calendar.YEAR);
    mMonth = c.get(Calendar.MONTH);
    mDay = c.get(Calendar.DAY_OF_MONTH);


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

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

    txtDate.setText(dayOfMonth + "-" + (monthOfYear + 1) + "-" + year);

    }
    }, mYear, mMonth, mDay);
    datePickerDialog.show();

Код для выбора времени

// Get Current Time
final Calendar c = Calendar.getInstance();
mHour = c.get(Calendar.HOUR_OF_DAY);
mMinute = c.get(Calendar.MINUTE);

// Launch Time Picker Dialog
TimePickerDialog timePickerDialog = new TimePickerDialog(this,
new TimePickerDialog.OnTimeSetListener() {

@Override
public void onTimeSet(TimePicker view, int hourOfDay,
int minute) {

txtTime.setText(hourOfDay + ":" + minute);
}
}, mHour, mMinute, false);
timePickerDialog.show();
Другие вопросы по тегам