Как получить TimePicker после всплывающего TimePickerDialog - PullRequest
2 голосов
/ 26 июля 2010

Я работаю над автоматическим тестированием Android и пытаюсь протестировать приложение будильника в Android.Я хочу получить TimePicker после всплывающего TimePickerDialog, затем мы можем использовать его для вызова методов 'setCurrentHour (...)' и 'setCurrentMinute ()', чтобы установить время будильника программно, вместо того, чтобы отправлять событие ключа столько раз,Спасибо.

Ответы [ 3 ]

0 голосов
/ 04 сентября 2013

Это может помочь

    Calendar mCalendar = Calendar.getInstance();

     mHour = mCalendar.get(Calendar.HOUR_OF_DAY);
     mMinute = mCalendar.get(Calendar.MINUTE);


     TimePickerDialog timePickerDialog = new TimePickerDialog(mActivity, mTimeSetListener, mHour, mMinute, false);

     private TimePickerDialog.OnTimeSetListener mTimeSetListener = new TimePickerDialog.OnTimeSetListener() {
         public void onTimeSet(TimePicker view, int hourOfDay, int minute) {

             mCalendar.set(Calendar.HOUR_OF_DAY, hourOfDay);
         mCalendar.set(Calendar.MINUTE, mMinute);
         SimpleDateFormat mSDF = new SimpleDateFormat("hh:mm a");
         String time = mSDF.format(mCalendar.getTime());
     }
 }
0 голосов
/ 27 апреля 2017
public class CustomTimePickerDialog extends TimePickerDialog {

    public CustomTimePickerDialog(Context context, OnTimeSetListener listener, int hourOfDay, int minute, boolean is24HourView) {

        super(context, listener, hourOfDay, minute, is24HourView);
        try {
            Class<?> superClass = getClass().getSuperclass();
            Field TimePickerField = superClass.getDeclaredField("mTimePicker");
            TimePickerField.setAccessible(true);
            TimePicker timePicker = (TimePicker) TimePickerField.get(this);
            timePicker.setOnTimeChangedListener(this);
        } catch (NoSuchFieldException | IllegalAccessException e) {
            e.printStackTrace();
        }
    }

    public int getHour() {
        return currentHour;
    }

    public int getMinute() {
        return currentMinute;
    }

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

        super.onTimeChanged(view, hourOfDay, minute);
        currentHour = hourOfDay;
        currentMinute = minute;
    }

    private int currentHour;
    private int currentMinute;
}
0 голосов
/ 27 июля 2010

Когда onTimeChanged срабатывает в первый раз, сохраните View, переданный в методе. Это представление будет ссылкой на TimePicker.

...