Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.diplom.android.diplom;
- import android.app.Activity;
- import android.app.Dialog;
- import android.content.DialogInterface;
- import android.content.Intent;
- import android.icu.util.Calendar;
- import android.os.Build;
- import android.os.Bundle;
- import android.support.annotation.RequiresApi;
- import android.support.v4.app.DialogFragment;
- import android.support.v7.app.AlertDialog;
- import android.view.LayoutInflater;
- import android.view.View;
- import android.widget.TimePicker;
- import java.util.Date;
- import java.util.concurrent.TimeUnit;
- import mobile.figayou.com.figayou.R;
- /**
- * @author: timur.mukhortov
- * date: 12.04.2018
- * time: 18:01
- * @LinkedIn: linkedin.com/in/timurmukhortov
- **/
- public class TimePickerFragment extends DialogFragment {
- public static final String EXTRA_TIME = "com.diplom.android.diplom.timepicker.time";
- private static final String ARG_TIME = "time";
- private TimePicker mTimePicker;
- //Передача даты через аргументы = объект дэйт аргумент фрагмента
- public static TimePickerFragment newInstance(Long time) {
- Bundle args = new Bundle();
- args.putLong(EXTRA_TIME, time);
- TimePickerFragment fragment = new TimePickerFragment();
- fragment.setArguments(args);
- return fragment;
- }
- @RequiresApi(api = Build.VERSION_CODES.N)
- @Override
- public Dialog onCreateDialog(Bundle savedInstanceState){
- Date date = new Date(getArguments().getLong(EXTRA_TIME));
- System.out.println(date.getTime());
- Calendar calendar = Calendar.getInstance();
- calendar.setTime(date);
- final int hours = calendar.get(Calendar.HOUR);
- final int minutes = calendar.get(Calendar.MINUTE);
- View v = LayoutInflater.from(getActivity())
- .inflate(R.layout.dialog_time, null);
- mTimePicker = v.findViewById(R.id.dialog_time_picker);
- mTimePicker.setIs24HourView(true);
- mTimePicker.setMinute(minutes);
- mTimePicker.setHour(hours);
- // mTimePicker.init(year, mouth, day, null);
- //это окошечко вылазит в центре экрана
- return new AlertDialog.Builder(getActivity())
- .setView(v)
- .setTitle(R.string.time_picker_title)
- .setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialogInterface, int i) {
- long minuts = TimeUnit.MINUTES.toMillis(minutes);
- long houres = TimeUnit.MINUTES.toMillis(hours);
- Date time = new Date(houres + minuts);
- sendResult(Activity.RESULT_OK, time);
- }
- })
- .create();
- }
- private void sendResult(int resultCode, Date time){
- if (getTargetFragment() == null) {
- return;
- }
- Intent intent = new Intent();
- intent.putExtra(EXTRA_TIME, time);
- getTargetFragment()
- .onActivityResult(getTargetRequestCode(), resultCode, intent);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement