Advertisement
elsemTim

java

Apr 12th, 2018
180
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.23 KB | None | 0 0
  1. package com.diplom.android.diplom;
  2.  
  3. import android.app.Activity;
  4. import android.app.Dialog;
  5. import android.content.DialogInterface;
  6. import android.content.Intent;
  7. import android.icu.util.Calendar;
  8. import android.os.Build;
  9. import android.os.Bundle;
  10. import android.support.annotation.RequiresApi;
  11. import android.support.v4.app.DialogFragment;
  12. import android.support.v7.app.AlertDialog;
  13. import android.view.LayoutInflater;
  14. import android.view.View;
  15. import android.widget.TimePicker;
  16.  
  17. import java.util.Date;
  18. import java.util.concurrent.TimeUnit;
  19.  
  20. import mobile.figayou.com.figayou.R;
  21.  
  22. /**
  23.  * @author: timur.mukhortov
  24.  * date: 12.04.2018
  25.  * time: 18:01
  26.  * @LinkedIn: linkedin.com/in/timurmukhortov
  27.  **/
  28.  
  29.  
  30. public class TimePickerFragment extends DialogFragment {
  31.     public static  final String EXTRA_TIME = "com.diplom.android.diplom.timepicker.time";
  32.  
  33.     private static final String ARG_TIME = "time";
  34.  
  35.     private TimePicker mTimePicker;
  36.  
  37.     //Передача даты через аргументы = объект дэйт аргумент фрагмента
  38.     public static TimePickerFragment newInstance(Long time) {
  39.         Bundle args = new Bundle();
  40.         args.putLong(EXTRA_TIME, time);
  41.  
  42.         TimePickerFragment fragment = new TimePickerFragment();
  43.         fragment.setArguments(args);
  44.         return fragment;
  45.     }
  46.  
  47.  
  48.  
  49.  
  50.     @RequiresApi(api = Build.VERSION_CODES.N)
  51.     @Override
  52.     public Dialog onCreateDialog(Bundle savedInstanceState){
  53.  
  54.  
  55.         Date date = new Date(getArguments().getLong(EXTRA_TIME));
  56.  
  57.         System.out.println(date.getTime());
  58.         Calendar calendar = Calendar.getInstance();
  59.         calendar.setTime(date);
  60.  
  61.         final int hours = calendar.get(Calendar.HOUR);
  62.         final int minutes = calendar.get(Calendar.MINUTE);
  63.  
  64.         View v = LayoutInflater.from(getActivity())
  65.                 .inflate(R.layout.dialog_time, null);
  66.  
  67.         mTimePicker = v.findViewById(R.id.dialog_time_picker);
  68.         mTimePicker.setIs24HourView(true);
  69.         mTimePicker.setMinute(minutes);
  70.         mTimePicker.setHour(hours);
  71.  
  72.         // mTimePicker.init(year, mouth, day, null);
  73.  
  74.         //это окошечко вылазит в центре экрана
  75.         return new AlertDialog.Builder(getActivity())
  76.                 .setView(v)
  77.                 .setTitle(R.string.time_picker_title)
  78.                 .setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
  79.                     @Override
  80.                     public void onClick(DialogInterface dialogInterface, int i) {
  81.                         long minuts = TimeUnit.MINUTES.toMillis(minutes);
  82.                         long houres = TimeUnit.MINUTES.toMillis(hours);
  83.                         Date time = new Date(houres + minuts);
  84.                         sendResult(Activity.RESULT_OK, time);
  85.                     }
  86.                 })
  87.                 .create();
  88.     }
  89.  
  90.     private void sendResult(int resultCode, Date time){
  91.         if (getTargetFragment() == null) {
  92.             return;
  93.         }
  94.         Intent intent = new Intent();
  95.         intent.putExtra(EXTRA_TIME, time);
  96.  
  97.         getTargetFragment()
  98.                 .onActivityResult(getTargetRequestCode(), resultCode, intent);
  99.     }
  100. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement