programing

Android에서 대화 상자가 해제되거나 취소되는 차이점은 무엇입니까?

i4 2023. 8. 24. 21:47
반응형

Android에서 대화 상자가 해제되거나 취소되는 차이점은 무엇입니까?

제목에서 알 수 있듯이 안드로이드에서 대화 상자가 해제되거나 취소되는 것의 차이점은 무엇입니까?

일반적으로 대화 상자는 작업이 완료되고 화면에서 제거될 때 제거됩니다.사용자가 대화 상자를 종료하고 뒤로 버튼을 누르면 대화 상자가 취소됩니다.

예를 들어 화면에 표준 예/아니오 대화 상자가 표시됩니다.사용자가 [아니오]를 누르면 대화상자가 닫히고 [아니오] 값이 호출자에게 반환됩니다.Yes(예) 또는 No(아니오)를 선택하는 대신 Back(뒤로)을 클릭하여 선택하지 않고 대화 상자를 벗어나면 대화 상자가 취소되고 호출자에게 값이 반환되지 않습니다.

dismiss코드에서 명시적으로 호출해야 하는 것입니다. 일반적으로 버튼의 클릭 이벤트에 응답합니다.Dialog원한다면, 전화를 걸 수 있습니다.dismissDialog에 시대에Activity차례차례로 방문할 것입니다.dismiss에서.Dialog.

cancel의 코드에서 때가 취소 가능한 "BACK" 버튼을 누를 때만 됩니다.Dialog가 열려 있습니다(@Lee가 언급한 대로).

를 사용하는 .DatePicker그럼 이 모든 것은 여전히 사실입니다.@가 말했듯이, @ 말했이듯가,DatePickerDialog.OnDateSetListener사용자가 언제 날짜를 선택했는지 감지합니다.DatePicker.

Android Developer Reference는 다음에 대한 자세한 정보를 제공합니다.Dialogs의

Dismiss 해제를 호출하면 대화 상자가 화면에서 제거됩니다.이 메서드는 모든 스레드에서 안전하게 호출할 수 있습니다.대화 상자가 해제될 때 이 방법을 재정의하여 정리하지 말고 onStop에서 이 방법을 구현해야 합니다.

Cancel 취소를 호출하면 대화 상자가 취소됩니다.이는 기본적으로 dismiss()를 호출하는 것과 동일하지만 Dialog Interface도 호출합니다.등록된 경우 CancelListener(취소 수신기).

Hide 이 메서드는 대화 상자를 숨기지만 무시하지는 않습니다.

enter image description here

자세한 내용은 여기를 참조하십시오.

다른 점은 값을 호출자 기능으로 되돌리는 것입니다.

dialog.cancel()일반적으로 OK/Dismiss(확인/해제)와 같이 경보 대화 상자에서 제공하는 선택 항목을 선택하고 null/no 값을 호출자에게 반환하는 대신 사용자가 뒤로 단추를 누를 때 호출됩니다.하는 동안에

dialog.dismiss()일반적으로 사용자가 대화 상자의 해제 버튼을 누르는 것과 같이 경보 대화 상자가 제공하는 선택 항목 중에서 선택할 때 호출되며, 대화 상자가 해제되고 null이 아닌 해당 값이 호출자에게 반환됩니다.바로 그겁니다.

이 예를 들어보겠습니다.

val dialog = AlertDialog.Builder(this@MainActivity)
    .setTitle("Title")
    .setMessage("Message")
    .setPositiveButton("Dismiss") { dialog, _ ->
        dialog.dismiss()
    }.setNegativeButton("Cancel") { dialog, _ ->
        dialog.cancel()
    }.create()

dialog.setOnDismissListener {
    Log.i("TAG", "onDismissListener")
}
dialog.setOnCancelListener {
    Log.i("TAG", "onCancelListener")
}
dialog.show()

해제 버튼을 클릭할 때

onDismissListener

취소 버튼을 클릭할 때

onCancelListener
onDismissListener

시스템 뒤로 버튼

onCancelListener
onDismissListener

언급URL : https://stackoverflow.com/questions/3125647/what-is-the-difference-between-a-dialog-being-dismissed-or-canceled-in-android

반응형