2011-11-11 4 views
2

저는 Android에 준 중첩 된 사람이고 Android의 비모 달 대화 상자 사용과 관련하여 "큰 그림"을 볼 수 있을지 확신하지 못합니다. 여러 유형의 대화 상자를 사용할 수 있지만 "확인"을 클릭 한 후에 결과를 사용하는 방법을 알지 못합니다. 대화 상자가 표시되면 호출 UI 작업이 즐겁습니다. 분명히 중요한 대화의 목적은 추가 처리를 위해 사용자로부터 일부 정보를 얻는 것이지만 주 스레드는 이미 이동했습니다. 그렇다면 대화 상자 데이터의 결과를 실제로 사용하려면 어떻게해야합니까?Android (넌 모달) 대화 상자 사용 방법은 무엇입니까?

이 작업을 수행하는 유일한 방법은 내 결과 처리를 "확인"버튼의 onclick 처리기에 넣는 것입니다.하지만 이는 내 방식에 다소 어색하고 비합리적으로 보입니다. 그럼에도 불구하고 대화 결과를 처리하는 "평소와 관례"적인 방식입니까? 더 좋은 방법이 있습니까? 아니면 무언가를 놓치고 있습니까?

예를 들어, 목록보기에 파일 목록을 표시하고 삭제할 파일 목록을 선택하고 싶다고 가정 해 보겠습니다. onclick 핸들러에 delete-code를 넣을 수 있습니까?

답변

3

예, Android 대화 상자로 작업하는 "평소와 관행"방식입니다. 결과를 청취자에서 처리하고 설명서의 예는 dialogs guide 또는 date picker dialog sample을 참조하십시오.

활동이있는 대화 상자를 만들 때 (대화 주제를 proper으로 설정해야 함) 대화 상자 활동에서 수신기에서 처리를 수행 할 수 있습니다. 또는 값을 부모 작업으로 반환하고 onActivityResult 콜백으로 처리 할 수 ​​있습니다.

리스너에서 실행하는 코드는 주 스레드에서 실행되므로 다소 짧고 신속해야합니다. 사용자가 기다리지 않도록하십시오! 처리가 시간이 오래 걸린다면 백그라운드에서 처리하십시오.

Android의 모달과 모달이 아닌 대화 상자에 대한 메모입니다. 기본적으로 모든 대화 상자 (및 대화 상자로 표시된 활동)는 모달입니다. 적절한 창 플래그 (자세한 내용은 this 질문과 대답 참조)를 설정하여 모덜리스 대화 상자 (대화 상자로 표시되는 활동)를 만들 수 있습니다.