Android

[안드로이드] 안드로이드스튜디오(Android Studio) 다이얼로그(AlertDialog) 보여주기, 다이얼로그에 다양한 모양의 리스트 보여주기, setItems(), setSingleChoiceItems(), setMultiChoiceItems(), 안드로이드 예제, ..

정보처리마법사 2016. 8. 12. 01:40
반응형

[안드로이드] 안드로이드스튜디오(Android Studio) 다이얼로그(AlertDialog) 보여주기, 다이얼로그에 다양한 모양의 리스트 보여주기, setItems(), setSingleChoiceItems(), setMultiChoiceItems(), 안드로이드 예제, 안드로이드 강좌

 

참고 : 이미지서명은 제 와이프 블로그 이미지서명입니다. 

 

 

 

 

안녕하세요 정보처리마법사 입니다.

 

이번 포스팅의 주제는 다이얼로그(AlertDialog) 보여주기,

다이얼로그에 다양한 모양의 리스트 보여주기에 관한 내용입니다.

다이얼로그는 토스트(toast)와 마찬가지로 사용자의 시야를 가리는 팝업창입니다.

 

다이얼로그는 토스트와는 다르게 사용자의 선택을 기다리므로 반드시 사용자가 어떤 반응을

해야지 닫힙니다. 기본적으로 타이틀, 메시지, 버튼 으로 구성됩니다.

 

레이아웃에 버튼을 하나 추가합니다.

 

 

그리고 Activity 클래스를 상속 받으면서 View.OnClickListener 인터페이스를

구현하는 MainActivity 를 작성합니다.

 

그리고 onClick()메소드를 구현합니다. Icon은 res/drawable 폴더에 papoo2.png 파일을 넣어놨습니다.

타이틀은 다이얼로그 메시지는 헬로월드 버트은 닫기버튼만 설정 하였습니다. AlertDialog는 최대 세 개의 버튼을 가질 수 있으며, 이 버튼들은 리스너가 설정되어 있지 않더라도 자동으로 다이얼로그를 닫는 역할을 수행합니다.

 

참고 메소드

AlertDialog creat() : AlertDialog를 생성합니다.

AlertDialog.Builder setCancelable(boolean cancelable) : 뒤로가기 버튼으로 대화상자를 닫을 수 있는지 여부 (default true)

AlertDialog.Builder setIcon(Drawable icon) : 아이콘을 타이틀에 설정합니다.

AlertDialog.Builder setMessage(int messageId) : 메시지를 리소스 아이디로 설정합니다.

AlertDialog.Builder setMessage(CharSequence message) : 메시지를 문자열로 설정합니다.

AlertDialog.Builder setNegativeButton(CharSequence text, DialogInterface.OnClickListener listener)

: 부정(negative) 버튼이 눌렸을 때 호출될 리스너를 설정합니다.

AlertDialog.Builder setNeutralButton(CharSequence text, DialogInterface.OnClickListener listener)

: 중립 (neutral) 버튼이 눌렸을 때 호출 될 리스너를 설정합니다.

AlertDialog.Builder setPostiveButton(CharSequence text, DialogInterface.OnClickListener listener)

 : 긍정(positive) 버튼이 눌렸을 때 호출될 리스너를 설정합니다.

AlertDialog show() : 현재 빌더에 설정된 옵션으로 AlertDialog를 생성하고 이를 보여줍니다.

 

디바이스에서 실행한 화면입니다.

잘 실행이 되는군요.

 

자 그럼 이번엔 다이얼로그에 다양한 모양의 리스트 보여주기를

살펴보겠습니다.

먼저 레이아웃에 버튼을 세 개 배치합니다.

 

 

l텍스트 모드로 보면 이렇습니다. 별다른 내용은 없고 아이디도 디폴트 아이디로 하였습니다.

 

 

 

MainActivity.java 소스코드 입니다.

버튼 세 개를 선언하고 레이아웃의 버튼 세 개를 findViewById() 메소드로 할당 하였습니다.

 

 

onClick() 메소드를 오버라이드 하였습니다. switch 문이든 if 문이든 편하실대로 하면 됩니다. 눌려진 버튼이 첫번째 버튼이냐 두번째 버튼이냐 세번째 버튼이냐에 따라 각각 따로 구현한 showAlertDialogItems() 메소드, showAlertDialogSingle() 메소드, showAlertDialogMulti() 메소드를 호출합니다.

각각의 메소드는 순서에 따라 AlertDialog.Builder 클래스의 setItems(), setSingleChoiceItems(), setMultiChoiceItems()메소드를 사용하였습니다. 이 메소드를 사용하면 배열의 값을 리스트 형식으로 다양하게 보여줄 수 있습니다. 먼저 setItems() 메소드를 사용하면 배열에 있는 데이터를 리스트 형식으로 보여줄 수 있습니다.

 

setItems() 메소드

public AlertDialog.Builder setItems(CharSequence[] items, DialogInterface.OnClickListener listener)

: 다이얼 로그 내용에 표시할 아이템 리스트와 아이템을 클릭했을 때 반응할 리스너를 설정합니다.

매개변수

items 화면에 표시할 아이템

listener 리스트 상의 아이템을 클릭했을 때 통지할 리스너, 아이템을 클릭해도 다이얼로그는 닫히지 않습니다. 다이얼로그를 닫기 위해서는 버튼을 클릭해야 하며, 만약 버튼을 제공하지 않았다면 다이얼로그는 사용자가 직접 닫아야 합니다.

반환

AlertDialog.Builder 객체

 

 

setSingleChoiceItems() 메소드를 사용하면 리스트의 아이템 중에서 한 개를 선택할 수 있도록 라디오 버튼을 텍스트 옆에 보여줍니다. 이렇게 생성한 리스트의 아이템들은 오직 한 개만 선택할 수 있으며, 사용자가 아이템을 사용하더라도 다이얼로그는 닫히지 않습니다. 다이얼로그를 닫을 수 있게 하기 위해서는 버튼을 추가하여서 기능을 구현해서 사용자가 닫게 해야합니다. 만약 버튼을 추가하지 않았다면 사용자가 뒤로(Back)버튼을 눌러 다이얼로그를 닫아야 합니다.

 

setSingleChoiceItems() 메소드

public AlertDialog.Builder setSingleChoiceItems(CharSequence[] items, int checkedItem, DialogInterface.OnClickListener listener)

: 다이얼 로그 내용에 표시할 아이템 리스트와 아이템을 클릭했을 때 반응할 리스너를 설정합니다. 이 리스트는 아이템 텍스트 오른쪽에 라디오 버튼을 가지며, 리스트의 아이템을 클릭해도 다이얼로그는 닫히지 않습니다. 다이얼로그를 닫기 위해서는 다이얼로그에 추가된 버튼을 클릭해야 합니다.

매개변수

items 화면에 표시할 아이템

checkedItem 선택해서 보여줄 아이템을 지정합니다. -1로 설정하면 어떤 아이템도 선택되지 않습니다.

listener 리스트 상의 아이템을 클릭했을 때 통지할 리스너, 아이템을 클릭해도 다이얼로그는 닫히지 않습니다. 다이얼로그를 닫기 위해서는 버튼을 클릭해야 하며, 만약 버튼을 제공하지 않았다면 다이얼로그는 사용자가 직접 닫아야 합니다.

반환

AlertDialog.Builder 객체

 

setMultiChoiceItems() 메소드를 사용하면 리스트의 여러 아이템 중에서 아이템을 원하는 만큼 선택할 수 있도록 체크박스를 텍스트 옆에 보여줍니다. 이하 내용은 위 메소드와 동일합니다.

 

 

setMultiChoiceItems() 메소드

public AlertDialog.Builder setMultiChoiceItems(CharSequence[] items, boolean[] checkedItems, DialogInterface.OnClickListener listener)

: 다이얼 로그 내용에 표시할 아이템 리스트와 아이템을 클릭했을 때 반응할 리스너를 설정합니다. 이 리스트는 아이템 텍스트 오른쪽에 체크박스를 가지며, 리스트의 아이템을 클릭해도 다이얼로그는 닫히지 않습니다. 다이얼로그를 닫기 위해서는 다이얼로그에 추가된 버튼을 클릭해야 합니다.

매개변수

items 화면에 표시할 아이템

checkedItems 체크할 아이템을 지정합니다. null로 설정하면 어떤 아이템도 선택되지 않습니다. 만약 null이 아니라면 배열 길이는 아이템 리스트 길이와 동일해야 합니다.

listener 리스트 상의 아이템을 클릭했을 때 통지할 리스너, 아이템을 클릭해도 다이얼로그는 닫히지 않습니다. 다이얼로그를 닫기 위해서는 버튼을 클릭해야 하며, 만약 버튼을 제공하지 않았다면 다이얼로그는 사용자가 직접 닫아야 합니다.

반환

AlertDialog.Builder 객체

 

 

디바이스로 테스트한 동영상입니다. 별 탈 없이 잘 작동 하는군요.


 

이상으로 포스팅을 마칩니다. 감사합니다.


 


 




참고서적 : 200개의 단계별 예제로 배우는 안드로이드 4.0 [제이펍]






Fin.


잘 못 된 정보가 있으면 말씀해주세요~


공감버튼 클릭은 작성자에게 큰 힘이 됩니다.  행복한 하루 되세요.


 

 

반응형