안드로이드(Android) 기본 알림창 AlertDialog 띄우는 방법 |
환경 : Eclipse Mars, Android 4.2.2 |
안드로이드에서 제공하는 가장 기본적인 다이얼로그 띄우는 방법에 대해 알아 보겠습니다. 프로그램 종료나 메시지를 사용자에게 알리고 싶을 때 간단하게 쓸수 있는 기본창에 대한 설명입니다. 알림창으로 이용하는 다이얼로그에는 사용자 선택을 요구하는 버튼이 있습니다. 기본은 확인과 취소 버튼입니다. 그 외에도 여러 버튼들을 추가할 수 있지만 이번 포스팅에서는 기본 두개의 버튼을 나타내는 방법과 클릭이벤트를 연결하는 방법에 대해 설명하겠습니다.
▼ AlertDialog 객체는 먼저 Builder 객체를 만들어 정보를 셋팅합니다. AlertDialog.Builder() 함수를 통해 Builder 객체를 만들수 있습니다. 그리고 다이얼로그에 표시할 제목과 메시지를 셋팅할수 있는 setTitle(), setMessage() 함수가 있죠.
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder( context); // 제목셋팅 alertDialogBuilder.setTitle("프로그램 종료"); // AlertDialog 셋팅 alertDialogBuilder .setMessage("프로그램을 종료할 것입니까?") .setCancelable(false);
▼ 다음은 버튼에 대한 제어입니다. 왼쪽 버튼이 setNegativeButton() 이며 오른쪽이 setPositiveButton() 입니다. 두 함수의 인수로 OnClickListener 객체를 넘기시면 됩니다. OnClickListener 객체를 넘기시면서 onClick() 함수에 구현하고 싶은 기능을 셋팅하시면 되겠죠. 저는 다이얼로그에서 종료 버튼을 클릭했을 때 프로그램이 꺼지도록 셋팅했습니다. AlertDialogActivity.this.finish(); 함수를 호출하면 되겠죠.
alertDialogBuilder .setMessage("프로그램을 종료할 것입니까?") .setCancelable(false) .setPositiveButton("종료", new DialogInterface.OnClickListener() { public void onClick( DialogInterface dialog, int id) { // 프로그램을 종료한다 AlertDialogActivity.this.finish(); } }) .setNegativeButton("취소", new DialogInterface.OnClickListener() { public void onClick( DialogInterface dialog, int id) { // 다이얼로그를 취소한다 dialog.cancel(); } });
▼ Build 객체에 정보를 셋팅 하셨다면 메시지 창을 띄울 AlertDialog 객체를 만들어야 겠죠. Builder.create() 함수로 AlertDialog 객체를 만듭니다. 그리고 show() 함수를 통해 위에서 셋팅한 내용을 띄우면 됩니다.
// 다이얼로그 생성 AlertDialog alertDialog = alertDialogBuilder.create(); // 다이얼로그 보여주기 alertDialog.show();
▼ 이렇게 해서 만들어진 메인 Activity 의 전체 소스 입니다. 화면레이아웃인 XML은
버튼만 있기 때문에 생략하도록 하겠습니다.
import android.app.Activity; import android.app.AlertDialog; import android.content.Context; import android.content.DialogInterface; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; public class AlertDialogActivity extends Activity implements OnClickListener { final Context context = this; private Button button; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_alert_dialog); button = (Button) findViewById(R.id.btn_alert); // 클릭 이벤트 button.setOnClickListener(this); } public void onClick(View v) { switch (v.getId()) { case R.id.btn_alert: AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder( context); // 제목셋팅 alertDialogBuilder.setTitle("프로그램 종료"); // AlertDialog 셋팅 alertDialogBuilder .setMessage("프로그램을 종료할 것입니까?") .setCancelable(false) .setPositiveButton("종료", new DialogInterface.OnClickListener() { public void onClick( DialogInterface dialog, int id) { // 프로그램을 종료한다 AlertDialogActivity.this.finish(); } }) .setNegativeButton("취소", new DialogInterface.OnClickListener() { public void onClick( DialogInterface dialog, int id) { // 다이얼로그를 취소한다 dialog.cancel(); } }); // 다이얼로그 생성 AlertDialog alertDialog = alertDialogBuilder.create(); // 다이얼로그 보여주기 alertDialog.show(); break; default: break; } } }
댓글을 달아 주세요