안드로이드/Android "잠시만 기다려 주세요." ProgressDialog 띄우기
▒ ▒ ▒ ▒ ▒ ▒ ▒ 전체 소스 입니다. ▒ ▒ ▒ ▒ ▒ ▒ ▒
▒ ▒ ▒ ▒ ▒ ▒ ▒ 전체 소스 입니다. ▒ ▒ ▒ ▒ ▒ ▒ ▒
package arabiannight.tistory.com; import android.app.Activity; import android.app.ProgressDialog; import android.os.Bundle; import android.os.Handler; public class TestProgressDialogActivity extends Activity { private Handler mHandler; private ProgressDialog mProgressDialog; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); mHandler = new Handler(); runOnUiThread(new Runnable() { @Override public void run() { mProgressDialog = ProgressDialog.show(TestProgressDialogActivity.this,"", "잠시만 기다려 주세요.",true); mHandler.postDelayed( new Runnable() { @Override public void run() { try { if (mProgressDialog!=null&&mProgressDialog.isShowing()){ mProgressDialog.dismiss(); } } catch ( Exception e ) { e.printStackTrace(); } } }, 3000); } } ); } }
▒ ▒ ▒ ▒ ▒ ▒ ▒ Detail 설명 입니다. ▒ ▒ ▒ ▒ ▒ ▒ ▒
▒ ProgressDialog
ProgressDialog는 어떠한 작업을 할 시에 User로 부터의 입력을 제한 하기 위해 사용 할 수 있습니다.
예를들어 개발자 입장에서 1~100까지의 숫자가 증가하는 동안 User로 부터의 이벤트를 제한 하고 싶을 경우에,
Dialog의 특성을 이용해서(다이얼로그가 isShowing() 상태일 경우 다이얼로그 종료 전까지는 다른 작업을 수행할 수 없음.)
User로 부터의 이벤트를 제한 할 수 있습니다.
또한 이런 의도의 사용 말고도 다른 곳에 응용 하여 사용 할 수 있습니다.
▒ 1.
ProgressDialog를 제어 해줄 Handler를 생성 합니다.
메인 핸들러를 사용하기 위해서는 Main Class에서 핸들러를 생성 해야 합니다.
private Handler mHandler; mHandler = new Handler();
▒ 2.
ProgressDialog를 생성 하는 부분 입니다.
Context, Title , String , Indeterminate 부분으로 인자가 나눠져 있습니다. 해당 인자에 맡게
값을 넣어 주시면 됩니다.
mProgressDialog = ProgressDialog.show(TestProgressDialogActivity.this,"", "잠시만 기다려 주세요.",true);
▒ 3.
runOnUiThread를 사용하여 UI를 변경하는 작업인 ProgressDialog를 띄워주고 있습니다.
runOnUiThread는 메인 Thread 내에서 UI를 직접 컨트롤 할 수 있게 제공되고 있는 아주 편리한 UI쓰레드 입니다.
그리고 3초 후에 핸들러가 ProgressDialog가 null이 아니고 show 상태일 경우에 Dialog를 종료 시켜 줍니다.
runOnUiThread(new Runnable() { @Override public void run() { mProgressDialog = ProgressDialog.show(TestProgressDialogActivity.this,"", "잠시만 기다려 주세요.",true); mHandler.postDelayed( new Runnable() { @Override public void run() { try { if (mProgressDialog!=null&&mProgressDialog.isShowing()){ mProgressDialog.dismiss(); } } catch ( Exception e ) { e.printStackTrace(); } } }, 3000); } } );
▒ 파일링크 & 스크린 샷
'Android > Dialog' 카테고리의 다른 글
안드로이드/Android Handler를 사용한 ProgressDialog 띄우기 (1) | 2012.06.28 |
---|---|
안드로이드/Android 다이얼로그 안에서 onClick() 메서드 안에서 Activity finish() 호출 하기 (0) | 2012.06.22 |
안드로이드/Android 기본 Dialog, inflate Dialog (1) | 2012.03.29 |
안드로이드/Android Custom Dialog 만들기 (3) | 2011.12.03 |
안드로이드/Android Inflater 적용한 Alertdialog 만들기 (2) | 2011.12.03 |