설.현.아빠
[안드로이드] 프로그레스 다이얼로그(ProgressDialog) 생성하기 [티몰스의 랩하는 프로그래머] 본문
안드로이드의 다이얼로그에 대한 내용입니다.
프로그레스 다이얼로그 ( Progress Dialog ) 는 AlertDialog 클래스를 상속받은 클래스 입니다. 이것은 끝나는 시점이 명확하지 않은 상태의 태스크에 대한 진행상황을 '진행바퀴' 로 보여줍니다.
끝나는 시점이 정해진 태스크라면 좀 더 명확하게 '진행바' 로 보여주는것도 좋겠네요
이 다이얼로그는 버튼을 제공할 수도 있습니다. ProgressDialog 의 구현은 ProgressDialog.show() 메소드를 호출하는 것만으로 처리할 수 있습니다.
show() 메소드는 모두 static 메소드라는 점에 주의하시면 되겠습니다.
show() 메소드의 첫번째 인자는 어플리케이션의 컨텍스트, 두번재는 다이얼로그 타이틀, 세번째는 텍스트 내용, 네번째는 '진행바'에서 사용되는 루프 진행 여부를 나타냅니다.
프로그레스 다이얼로그의 디폴트 스타일은 '진행바퀴' 입니다.
명확한 진행율을 보여주는 진행바를 만들기 위해선 아래와 같은 방법을 일반적으로 사용합니다.
2. 진행 스타일을 setProgressStyle() 메소드에 "STYLE_xxx" 로 지정하고 그외 속성들을 지정합니다
3. 다이얼로그 표시를 위해 show() 메소드를 호출 하거나, onCreateDialog() 에서 ProgressDialog 객체를 리턴해도 됩니다.
4. 전체 값을 setProgress() 로 지정하거나 incrementProgressBy(int) 메소드로 현재 진행양에 증가분 값을 더할 수 있습니다.
직접 소스코드를 테스트 해보시는 분들도 계시겠지만, 직접 테스트해보면 다이얼로그가 시작되면 그 다이얼로그가 끝나서 종료되어 끝나기 전에는 해당 액티비티에서 "BACK" 버튼을 눌러도 반응을 하지 않습니다.
진행상태라는것의 특성상 어떤 진행 상태는 오래걸릴수도 있고 다른 기타 이유들 때문에 별도의 스레드에서 처리하고 , 메인 스레드는 계속 사용자에게 즉각 반응을 해야되는데요, 이 작업을 위해선 스레드를 새로 생성 후 핸들러를 이용하여 메인스레드에게 결과를 알려주는 방식을 써야 합니다.
진행상태 표시와 처리를 위하여 , 별도의 스레드를 만들고 그 스레드는 진행이 이루어질 때 마다 핸들러를 통해 메인 스레드로 알려주면 됩니다. 그러면 메인 액티비티에서 Progress 다이얼로그를 업데이트하게 하면 되겠지요.
다이얼 로그에 대한 내용이 거의 끝나갑니다.
다음 포스팅에선 커스텀 다이얼로그의 생성을 알아보겟습니다. ㅎ
'안드로이드 > Dialog' 카테고리의 다른 글
[티몰스의 랩하는 프로그래머] 다이얼로그 강좌. (3) | 2011.02.11 |
---|---|
ProgressDialog 동작중 취소하기. (0) | 2011.02.11 |
ProgressDialog 2가지 종류 -> STYLE_SPINNER / STYLE_HORIZONTAL (0) | 2011.02.11 |
제한시간 Progress Bar 만들기. (0) | 2011.02.11 |
progressBarStyleHorizontal을 이용한 Progress Bar제작 (1) | 2011.02.11 |