출처 : http://neodreamer.tistory.com/411
AlertDialog 는 사용자에게 메세지나 경고를 알리기 위한 기능으로 Android 에서 지원하는 Dialog 이다. Toast 와는 다르게 Dialog 라서 Activity의 Focus를 가져간다.

대부분의 Dialog 는 Activity의 onCreateDialog() 함수에서 생성하는 것을 권장하고 있다. onCreateDialog() 에서 생성된 Dialog 는 Activity 에서 관장하고 있으며 Activity 객체들()을 상속 받는다.
showDialog() 가 호출되면 생성되지 않은 Dialog의 경우 onCreateDialog() 함수에서 생성이 되고 이후에 호출이 되어질 때에는 새로 생성하지 않고 기존 인스턴스를 그대로 이용한다. 다이얼로그가 호출되기 전에 Dialog 에 변화를 주려면 onPrepareDialog() 함수에서 처리 한다. onCreateDialog 에서 생성한 Dialog는 Activity 에서 항상 갖고 있는 객체로 더이상 필요가 없을 경우에는 시스템 시소스 확보를 위해 removeDialog() 를 호출하여 제거해 주는 것이 좋다.

간단하게 사용자에게 경고를 하기 위한 Dialog 라면 시스템이 관리하지 않고 그냥 간단하게 사용하는 것이 리소스 관리 측면에서 더 유용해 보인다.

AlertDialog 는 사용자에게 아주 간단하고 쉽게 경고 메세지를 보여 줄 수 있는 Dialog 이다. 하지만 Custom View 까지 지원하여 아주 많은 것을 표현해 줄 수 있다.

AlertDialog 는 아래의 요소를 갖을 수 있다.
  • Icon
  • Title
  • Message or ListView (두가지를 함께 지원하지 않음)
  • Custom View
  • Button (최대 3개)
Message 를 갖는 AlertDialog

Message 를 갖는 AlertDialog

ListView 를 갖는 AlertDialog

ListView 를 갖는 AlertDialog


AlertDialog 가 갖을 수 있는 모든 요소는 필요 요소가 없다. 모든 요소를 제거하고 AlertDialog 를 호출하면 Activity의 Focus를 가져오고 화면에는 아무것도 표시가 되지 않는다.

AlertDialog 를 생성하는 방법은 AlertDialog.Builder 클래스를 이용하면 된다.

아주 간단한 AlertDialog 생성하기
간단한 AlertDialog

간단한 AlertDialog




구성 요소중 Icon 과 Title 을 없애면 두 영역이 사라지지만 Icon 없이 Title 을 지정하면 기본 Icon 이 표시된다.
Icon과 Title을 제거한 AlertDialog

Icon과 Title을 제거한 AlertDialog

Icon 없이 Title 만 지정한 AlertDialog

Icon 없이 Title 만 지정한 AlertDialog



AlertDialog 에서 제공하는 ListView 활용하기
AlertDialog.Builder 에 있는 setSingleChoiceItems 함수를 이용하며 AlertDialog 에서 제공하는 ListView 를 사용할 수 있다.
ListView를 갖는 AlertDialog

ListView를 갖는 AlertDialog





Custom View 를 얹은 AlertDialog
Custom View 를 얹은 AlertDialog

Custom View 를 얹은 AlertDialog


Custom View XML



+ Recent posts