제목에서 알 수 있듯이 Android에서 대화 상자가 닫히거나 취소되는 것의 차이점은 무엇입니까?
답변
일반적으로 대화 상자는 작업이 완료되고 화면에서 제거 될 때 닫힙니다. 사용자가 대화 상자를 빠져 나가고 뒤로 단추를 누르면 대화 상자가 취소됩니다.
예를 들어, 화면에 표준 예 / 아니요 대화 상자가 있습니다. 사용자가 아니오를 클릭하면 대화 상자가 닫히고 아니오 값이 호출자에게 리턴됩니다. 예 또는 아니오를 선택하는 대신 사용자가 선택을 누르지 않고 뒤로를 클릭하여 대화 상자를 종료하면 대화 상자가 취소되고 호출자에게 값이 리턴되지 않습니다.
답변
dismiss
은 일반적으로의 버튼에서 클릭 이벤트에 응답하기 위해 코드에서 명시 적으로 호출해야하는 것 Dialog
입니다. 원하는 경우 호출 할 수 있습니다 dismissDialog
에 Activity
에 전화를 돌려 것이다, dismiss
온 Dialog
.
이 cancel
메소드는 코드에서 명시 적으로 호출되거나 Dialog
취소 가능 항목이 열려 있을 때 (@Lee가 지적한대로) BACK 버튼을 누를 때만 실행됩니다 .
를 사용하는 DatePicker
경우이 모든 것이 여전히 그렇습니다. @Lee가 말했듯 DatePickerDialog.OnDateSetListener
이 사용자가에서 날짜를 선택한 시점을 감지합니다 DatePicker
.
안드로이드 개발자는 참조 에 대한 추가 정보를 제공합니다 Dialog
들.
답변
Dismiss
해제를 호출하면 화면에서 대화 상자가 제거됩니다. 이 메소드는 모든 스레드에서 안전하게 호출 할 수 있습니다. 대화 상자가 닫힐 때 정리를 수행하기 위해이 메소드를 대체하지 말고 대신 onStop 에서이를 구현하십시오 .
Cancel
취소를 호출하면 대화 상자가 취소됩니다. 이것은 본질적으로 dismiss () 호출과 동일 하지만 DialogInterface.OnCancelListener 도 호출합니다. 등록 된 경우 .
Hide
이 방법은 대화 상자를 숨기지 만 닫지 마십시오.