TextView를 클릭 한 후 또 다른 TimePickerFragment
을 시작하는 사용자 정의 레이아웃이있는 대화 상자 부분 (AddAlarmDialogFragment
)이 하나 있습니다.두 개의 대화 조각 사이의 통신 Android
TimePickerFragment가 TimePickerDialog를 보여줍니다.
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
final Calendar c = Calendar.getInstance();
int hour = c.get(Calendar.HOUR_OF_DAY);
int minute = c.get(Calendar.MINUTE);
return new TimePickerDialog(getActivity(),TimePickerDialog.THEME_HOLO_LIGHT, this, hour, minute,
true);
}
지금까지 모든 노력하고 있습니다,하지만 난 TimePickerFragment 부모 DialogFragment
내가 TimePickerFragment이 콜백 메소드 onTimeSet(TimePicker view, int hourOfDay, int minute)
를 재정의 TimePickerDialog.OnTimeSetListener,
을 구현했다 고른 시간에 대한 정보를 전달하고 싶다.
나는, 방법 timePicked(int hour, int minutes)
이 onTimeSet(TimePicker view, int hourOfDay, int minute)
이 콜백
@Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
OnTimePickedListener onTimePickedListener=
OnTimePickedListener)getParentFragment();
onTimePickedListener.timePicked(hourOfDay,minute);
}
을 전체 코드 그리고 여기에 문제가 내부이라고 TimePickerFragment
public interface OnTimePickedListener {
void timePicked(int hour, int minutes);
}
안에도 내 인터페이스를 선언 TimePickerDialog
에서 AddAlarmDialogFragment
으로 시간을 보내려고하므로 DialogFragment가 h가 시작되었습니다 TimePickerFragment
부모 대화 상자에서이 인터페이스의 인스턴스를 가져올 수있는 방법이 있습니까? 아니면 TimePickerDialog.OnTimeSetListener
과 거의 똑같은 방법을 가지고있는 OnTimePickedListener
을 정의하는 것은 코드를 깨끗하게 만드는 아이디어가 아니기 때문에이 두 구성 요소 간의 통신을 제공하는 더 좋은 방법이 될 수 있습니다.
그래서'TimePickerFragment'는'TimePickerDialog'을 시작하고'TimePickerDialog'의 어떤 데이터를'TimePickerFragment'로 되돌리려할까요? – Jon
명확하게하기 위해 제 질문을 편집합니다. TimePickerFragment를 여는 AddAlarmDialogFragment에 데이터를 전달하고 싶습니다. 두 클래스 모두 DialogFragment를 확장하고 있습니다. 내 목표는 AddAlarmDialogFragment의 텍스트보기에서 시간 선택 도구에서 시간 표시를 편집하는 것입니다. – GosiaK
사용 이벤트 이러한 종류의 이벤트; 게시자/구독자 디자인 패턴이 작동해야합니다. 안드로이드에 대한 Google EventBus 라이브러리 – Eenvincible