Android: How to get the time from a TimePicker when it is typed in

后端 未结 2 1399
轻奢々
轻奢々 2020-12-08 17:42

I\'ve got a DialogPreference which implements a simple TimePicker.OnTimeChangedListener (see below). Setting the time by clicking the +/- buttons works great. But I don\'t k

相关标签:
2条回答
  • 2020-12-08 17:47

    Only a very bad workaround so far...

    ViewGroup v = (ViewGroup) timePicker.getChildAt(0);
    ViewGroup numberPicker1 = (ViewGroup) v.getChildAt(0);
    ViewGroup numberPicker2 = (ViewGroup) v.getChildAt(1);
    String hours = ((EditText) numberPicker1.getChildAt(1)).getText().toString();
    String mins = ((EditText) numberPicker2.getChildAt(1)).getText().toString();
    
    selectedTime = hours+":"+mins;
    
    0 讨论(0)
  • 2020-12-08 18:04

    I hadn't noticed this problem until i stumbled upon this question. There is a simple solution: When the user is done changing the date and time in my app, i simply call finish() and in the onPause() or onStop() or onDestroy() I do this:

    // force the timepicker to loose focus and the typed value is available !
    timePicker.clearFocus();
    // re-read the values, in my case i put them in a Time object.
    time.hour   = timePicker.getCurrentHour();
    time.minute = timePicker.getCurrentMinute();
    

    After this i store the time.toMillis(false) value in the appropriate column of my table.

    I don't know if the timepicker is still accessible in your onDialogClosed(boolean positiveResult). If not, find another callback to use when it still is.

    Hope this helps.

    0 讨论(0)
提交回复
热议问题