2010-07-26 4 views
2

나는 안드로이드 자동 테스트를하고 있으며 안드로이드에서 alarmclock 앱을 테스트 해보려고합니다. TimePickerDialog 팝업이 나온 후 TimePicker를 가져오고 싶습니다. 그런 다음 'setCurrentHour (...)'및 'setCurrentMinute()'메서드를 호출하여 키 이벤트를 여러 번 보내는 대신 알람 시간을 프로그래밍 방식으로 설정합니다 . 감사합니다.TimePickerDialog 팝업 후 TimePicker를 얻는 방법

답변

0

처음으로 onTimeChanged이 발생하면 메서드에서 전달 된보기를 저장하십시오. 이보기는 TimePicker에 대한 참조 일 것입니다.

+0

미안 해요, 난 문제를 명확하게 설명하지 않았다 도움이 될 수 있습니다. 안드로이드에서 alarmclock 앱의 소스 코드를 만질 수는 없지만 테스트 해보세요. – user402068

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; 
} 
관련 문제