Search code examples
androidandroid-timepicker

how to simply store selected time From TimePicker in android that value i am geeting in edittext?


i want to retrieve the time from Time-picker in android and store in appropriate variable which variable will suit for it. how can i retrieve time which is selected by user in easy way.

I am getting value of time-picker on edit text, but how should i get it in a proper variable.

This is my javacode :-

                    et = (EditText) findViewById(R.id.amar);
            et.setOnClickListener(new OnClickListener() {

                        @Override
                        public void onClick(View v) {
                            // TODO Auto-generated method stub
                            Calendar mcurrentTime = Calendar.getInstance();
                            int hour = mcurrentTime.get(Calendar.HOUR_OF_DAY);
                            int minute = mcurrentTime.get(Calendar.MINUTE);
                            TimePickerDialog mTimePicker;
                            mTimePicker = new TimePickerDialog(Timepicker.this,
                                    new TimePickerDialog.OnTimeSetListener() {
                                        @Override
                                        public void onTimeSet(TimePicker timePicker,
                                                int selectedHour, int selectedMinute) {
                                            et.setText(selectedHour + ":" + selectedMinute);
                                        }
                                    }, hour, minute, false);// Yes 24 hour time
                            mTimePicker.setTitle("Select Starting Time");
                            mTimePicker.show();
                        }
                    });

Solution

  • Instead of using et.setText() you should get the current time again and just modify the hour and minute properties to the newly selected ones.

        Calendar initialTime = Calendar.getInstance();
    
        int hour = initialTime.get(Calendar.HOUR_OF_DAY);
        int minute = initialTime.get(Calendar.MINUTE);
    
        TimePickerDialog mTimePicker = new TimePickerDialog(Timepicker.this,
            new TimePickerDialog.OnTimeSetListener() {
                @Override
                public void onTimeSet(TimePicker timePicker,
                        int selectedHour, int selectedMinute) {
    
                    Calendar currentTime = Calendar.getInstance();
                    currentTime.set(Calendar.HOUR_OF_DAY, selectedHour);
                    currentTime.set(Calendar.MINUTE, selectedMinute);
    
                    Date selectedDate = currentTime.getTime();
                }
            }, hour, minute, false);// Yes 24 hour time
    
        mTimePicker.setTitle("Select Starting Time");
        mTimePicker.show();
    

    Hope that helps