가이 코드 AlertDialogFragment 새에 AlertDialog.Builder (..)를 생성하는 간단한 DialogFragment 클래스입니다DialogFragment는
Fragment prev = getSupportFragmentManager().findFragmentByTag(DIALOG_SUBMISSIOIN_RESPONSE);
AlertDialogFragment alert = AlertDialogFragment.newInstance(text, getString(R.string.worklog_alert_ok));
alert.show(getSupportFragmentManager(), DIALOG_SUBMISSIOIN_RESPONSE);
를 사용하여 DialogFragment를 만들 제거되지 않습니다.
그때 나는 아직도 그 조각을 수있는 마지막 Log.d 메시지에, 그러나 대화
Fragment prev = getSupportFragmentManager().findFragmentByTag(dialogTag);
if (prev != null) {
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.remove(prev).commit();
}
Log.d(TAG, "dialog removed " + getSupportFragmentManager().findFragmentByTag(dialogTag) + ", isremoving = " + prev.isRemoving());
을 제거 할 (즉 getSupportFragmentManager().findFragmentByTag(dialogTag)
가 null이 아니라 유효한 조각 반환).
대화 상자를 즉시 강제로 제거하려면 어떻게합니까? 이 함수 다음에 실행되는 코드가 있고 대화 상자가 있는지 확인한 다음 아무 것도하지 않고 존재하지 않는 경우 다시 작성합니다. 그러나 getSupportFragmentManager().findFragmentByTag(dialogTag)
이 유효 DialogFragment
을 반환하기 때문에 절대로 다시 생성하지 않습니다.
나는 안드로이드 버전, 안드로이드 호환성 패키지를 사용하고 2.2
당신의'dialog'가'DialogFragment'의 확장 인 경우 대화 상자 조각을 제거하기 위해'dismiss()'를 호출하십시오. – Varun