Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- Scaffold
- ListTile
- Column Widget
- MainAxisAlignment
- AppBar
- Hello World
- Cached Image
- 반석천
- Flutter 앱 배포
- listview
- Row
- Row Widget
- FutureBuilder
- flutter
- ListView.builder
- Load Image
- Networking
- Image.network
- HTTP
- Flutter 예제
- Flutter Example
- Flutter Tutorial
- navigator
- sqlite
- InkWell
- node.js
- Snackbar
- Flutter 강좌
- CrossAxisAlignment
- WillPopScope
Archives
- Today
- Total
꿈꾸는 시스템 디자이너
ProgressDialog와 AlertDialog 사용법 본문
어플리케이션이 동작하는 도중에 긴 시간의 I/O 작업이라던지 사용자로부터 확인 명령을 받아야 할때와 같은 경우 현재 엑티비티 상에 새로운 다이얼로그를 표시할 필요가 있다.
ProgressDialog는 I/O 작업과 같이 잠시 엑티비이의 상태를 동결시킬 때 사용되고, AlertDialog는 사용자로부터 확인 명령을 받을 때 사용된다.
public class MainActivity extends Activity { ProgressDialog progressDialog; // ProgressDialog AlertDialog.Builder alertDialog; // AlertDialog Button btShowDialog; Button btAlert; public static int TIME_OUT = 1001; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btShowDialog = (Button) findViewById(R.id.btShowDialog); btAlert = (Button) findViewById(R.id.btShowAlert); alertDialog = new AlertDialog.Builder(this); } public void onClick(View v) { /** * ShowDialog 버튼일 클릭될 때 호출 */ if (v.getId() == btShowDialog.getId()) { // ProgressDialog 생성 progressDialog = ProgressDialog.show(this, "Title", "Message"); // 정해진 시간 후에는 타임아웃 발생을 위해 핸들러로 메시지 전달 mHandler.sendEmptyMessageDelayed(TIME_OUT, 2000); } /** * ShowAlert 버튼일 클릭될 때 호출 */ else if (v.getId() == btAlert.getId()) { alertDialog.setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { Toast.makeText(getApplicationContext(), "Ok Button is Clicked", 0).show(); } }); alertDialog.setNegativeButton("Cancel", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { Toast.makeText(getApplicationContext(), "Cancel Button is Clicked", 0).show(); } }); alertDialog.setTitle("Title"); alertDialog.setMessage("Message....."); alertDialog.show(); } } Handler mHandler = new Handler() { public void handleMessage(Message msg) { if (msg.what == TIME_OUT) { // 타임아웃이 발생하면 progressDialog.dismiss(); // ProgressDialog를 종료 } } }; }
ProgressDialog 사용법
ProgressDialog의 생성 및 표시는 은 라인 27번과 같이 처리한다. 또한 표시된 ProgressDialog가 사라질 수 있도록 핸들러로 지연된 메시지를 던진다(라인 30).
핸들러는 지연된 메시지를 받아서 라인 63,64처럼 팝업되어 있는 ProgressDialog를 삭제한다.
AlertDialog 사용법
라인 16처럼 생성을 하고, 화면에 표시할 버튼들을 추가한다(라인 38,39, 라인 46,47). 또한 타이틀과 메시지를 설정한후 show() 호출을 통해 화면에 표시한다.
'Development > Android' 카테고리의 다른 글
SQLiteOpenHelper 사용법 (1) | 2013.07.25 |
---|---|
간단한 SQLite 예제 (0) | 2013.07.19 |
개발폰에 구글 플레이 스토어(Google Play Store) 수동 설치 및 구글맵 설치 (0) | 2013.06.14 |
LocationManager 설정시 주의 사항 (2) | 2013.06.13 |
엑티비티(Activity)와 서비스(Service) 예제 (0) | 2013.05.15 |
Comments