일반 대화 상자를 표시해야하는 조각이 있습니다. 이 대화 상자에서 사용자는 예 / 아니요 응답을 선택할 수 있으며 그에 따라 조각이 작동해야합니다.
이제 Fragment
클래스에는 onCreateDialog()
재정의 할 메서드 가 없으므로 포함 된 .NET Framework에서 대화 상자를 외부에 구현해야한다고 생각합니다 Activity
. 괜찮지 만 Activity
선택한 답변을 어떻게 든 조각에보고해야합니다. 물론 여기에서 콜백 패턴을 사용할 수 있으므로 조각 Activity
은 리스너 클래스에 자신을 등록 하고 활동은이를 통해 응답을 다시보고합니다.
그러나 이것은 단편에 "간단한"예-아니오 대화 상자를 표시하는 것과 같은 간단한 작업에는 상당히 엉망인 것 같습니다. 또한, 이렇게하면 내 Fragment
자급 자족이 줄어들 것입니다.
이를 수행하는 더 깨끗한 방법이 있습니까?
편집하다:
이 질문에 대한 대답은 DialogFragments를 사용하여 Fragments에서 대화 상자를 표시하는 방법을 자세히 설명하지 않습니다. 그래서 AFAIK,가는 길은 :
- 조각을 표시합니다.
- 필요한 경우 DialogFragment를 인스턴스화합니다.
- 을 사용하여 원본 조각을이 DialogFragment의 대상으로 설정합니다
.setTargetFragment()
. - 원본 Fragment에서 .show ()를 사용하여 DialogFragment를 표시합니다.
- 사용자가이 DialogFragment에서 일부 옵션을 선택하면이 선택에 대해 원래 Fragment에 알리면 (예 : 사용자가 'yes'를 클릭) .getTarget ()을 사용하여 원래 Fragment의 참조를 가져올 수 있습니다.
- DialogFragment를 닫습니다.