목차
Creating Dialogs
Showing a Dialog
Dismissing a Dialog
Creating an AlertDialog
Creating a ProgressDialog
Creating a Custom Dialog
Showing a Dialog
Dismissing a Dialog
Creating an AlertDialog
Creating a ProgressDialog
Creating a Custom Dialog
본문내용
t)을 사용해서 진행상태 스타일에 “STYLE_HORIZONTAL”을 설 정하고, 메시지 같은 그 밖의 속성들을 설정하라.
3. 다이얼로그를 보여줄 준비가 되었을 때, show()를 호출하거나 또는 onCreateDialog (int) 콜백에서 ProgressDialog를 리턴하라.
4. 현재까지 완료된 전체 백분율 값을 가지고 setProgress(int)을 호출하거나, 또는 현재 까지 완료된 전체 백분율에 증가분 값을 더하는 incrementProgressBy(int)를 호출함 으로써 바에 표시되는 진행양을 증가시킬 수 있다.
예를 들어 그 설정은 다음과 같을 수 있다.
ProgressDialog progressDialog;
progressDialog = new ProgressDialog(mContext);
progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
progressDialog.setMessage("Loading...");
progressDialog.setCancelable(false);
그 설정은 간단하다. Progress 다이얼로그를 만들기 위해 필요한 대부분의 코드는 실제로 그것을 업데이트하는 과정에 포함된다. 이 작업을 위해 애플리케이션 내에 두 번째 쓰레드를 생성하는 것이 필요하다는 것을 발견할 수 있다. 그런 다음에 핸들러 오브젝트를 사용해서 액티비티의 사용자 인터페이스 쓰레드에게 진행상태를 역으로 레포트한다.
Creating a Custom Dialog
만약 다이얼로그에 대한 커스터마이즈된 디자인을 원한다면, 레이아웃과 위젯 엘리먼트를 사용해서 다이얼로그 윈도우에 대한 자신의 레이아웃을 생성할 수 있다. 레이아웃을 정의한 후에 루트 뷰 오브젝트나 레이아웃 리소스 ID를 setContentView(View)에 전달한다.
베이스 다이얼로그 클래스를 사용해서 만들어진 다이얼로그는 타이틀을 가져야 한다. 만약 setTitle()을 호출하지 않는다면, 그 공간은 타이틀이 비어 있기는 하지만 여전히 빈 상태로 보여지게 된다. 만약 타이틀을 전혀 원하지 않는다면, AlertDialog 클래스를 사용해서 커스텀 다이얼로그를 생성해야 한다. 하지만 AlertDialog는 AlertDialog.Bulder 클래스를 가지고 매우 쉽게 생성되기 때문에, 위에서 사용된 setContentView(int) 메소드에 접근할 필요는 없다. 대신 setView(View)를 사용해야 한다. 이 메소드는 뷰 오브젝트를 받아들인다. 그러므로 XML 레이아웃의 루트 뷰 오브젝트를 인플레이트하는 것이 필요하다.
XML 레이아웃을 인플레이트 하기 위해서는, getLayoutInfalter() 또는 getSystemService ()를 사용해서 LayoutInflater를 얻는다. 그리고 그런 다음에 inflate(int, ViewGroup)을 호출한다. 이것의 첫 번째 파라미터는 레이아웃 리소스 ID이며 두 번째는 루트 뷰의 ID이다. 이 시점에서, 그 레이아웃에서 뷰 오브젝트를 찾기 위해 인플레이트된 레이아웃을 사용할 수 있다. 그리고 ImageView와 TextView에 대한 내용을 정의한다. 그런 다음에 Alert Dialog.Builder를 인스턴스화하고 setView(View)를 사용해서 다이얼로그에 대한 인플레이트된 레이아웃을 지정한다.
커스텀 레이아웃을 위해 AlertDialog를 사용하는 것은, 사용자에게 관리되는 버튼, 선택 가능한 리스트, 타이틀, 아이콘 등과 같은 내장된 AlertDialog 특징들의 장점을 이용 가능하게 한다.
<모바일 멀티미디어>
Creating Dialogs
3. 다이얼로그를 보여줄 준비가 되었을 때, show()를 호출하거나 또는 onCreateDialog (int) 콜백에서 ProgressDialog를 리턴하라.
4. 현재까지 완료된 전체 백분율 값을 가지고 setProgress(int)을 호출하거나, 또는 현재 까지 완료된 전체 백분율에 증가분 값을 더하는 incrementProgressBy(int)를 호출함 으로써 바에 표시되는 진행양을 증가시킬 수 있다.
예를 들어 그 설정은 다음과 같을 수 있다.
ProgressDialog progressDialog;
progressDialog = new ProgressDialog(mContext);
progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
progressDialog.setMessage("Loading...");
progressDialog.setCancelable(false);
그 설정은 간단하다. Progress 다이얼로그를 만들기 위해 필요한 대부분의 코드는 실제로 그것을 업데이트하는 과정에 포함된다. 이 작업을 위해 애플리케이션 내에 두 번째 쓰레드를 생성하는 것이 필요하다는 것을 발견할 수 있다. 그런 다음에 핸들러 오브젝트를 사용해서 액티비티의 사용자 인터페이스 쓰레드에게 진행상태를 역으로 레포트한다.
Creating a Custom Dialog
만약 다이얼로그에 대한 커스터마이즈된 디자인을 원한다면, 레이아웃과 위젯 엘리먼트를 사용해서 다이얼로그 윈도우에 대한 자신의 레이아웃을 생성할 수 있다. 레이아웃을 정의한 후에 루트 뷰 오브젝트나 레이아웃 리소스 ID를 setContentView(View)에 전달한다.
베이스 다이얼로그 클래스를 사용해서 만들어진 다이얼로그는 타이틀을 가져야 한다. 만약 setTitle()을 호출하지 않는다면, 그 공간은 타이틀이 비어 있기는 하지만 여전히 빈 상태로 보여지게 된다. 만약 타이틀을 전혀 원하지 않는다면, AlertDialog 클래스를 사용해서 커스텀 다이얼로그를 생성해야 한다. 하지만 AlertDialog는 AlertDialog.Bulder 클래스를 가지고 매우 쉽게 생성되기 때문에, 위에서 사용된 setContentView(int) 메소드에 접근할 필요는 없다. 대신 setView(View)를 사용해야 한다. 이 메소드는 뷰 오브젝트를 받아들인다. 그러므로 XML 레이아웃의 루트 뷰 오브젝트를 인플레이트하는 것이 필요하다.
XML 레이아웃을 인플레이트 하기 위해서는, getLayoutInfalter() 또는 getSystemService ()를 사용해서 LayoutInflater를 얻는다. 그리고 그런 다음에 inflate(int, ViewGroup)을 호출한다. 이것의 첫 번째 파라미터는 레이아웃 리소스 ID이며 두 번째는 루트 뷰의 ID이다. 이 시점에서, 그 레이아웃에서 뷰 오브젝트를 찾기 위해 인플레이트된 레이아웃을 사용할 수 있다. 그리고 ImageView와 TextView에 대한 내용을 정의한다. 그런 다음에 Alert Dialog.Builder를 인스턴스화하고 setView(View)를 사용해서 다이얼로그에 대한 인플레이트된 레이아웃을 지정한다.
커스텀 레이아웃을 위해 AlertDialog를 사용하는 것은, 사용자에게 관리되는 버튼, 선택 가능한 리스트, 타이틀, 아이콘 등과 같은 내장된 AlertDialog 특징들의 장점을 이용 가능하게 한다.
<모바일 멀티미디어>
Creating Dialogs