2010-07-26 34 views
2

我正在进行android自动测试,并尝试在android中测试alarmclock应用程序。我想在TimePickerDialog弹出后获取TimePicker,然后我们可以使用它调用方法的setCurrentHour(...)和setCurrentMinute()来以编程方式设置闹钟时间,而不是多次发送键盘事件。 谢谢。如何在TimePickerDialog弹出后获取TimePicker

回答

0

onTimeChanged第一次触发时,保存方法中传递的视图。该视图将作为TimePicker的参考。

+0

对不起,我没有清楚地说明问题。我们无法触摸android中的闹钟应用程序的源代码,但只是测试它... – user402068 2010-07-28 00:46:42

0

这可能有助于

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
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; 
} 
相关问题