Please Enable JavaScript!
Gon[ Enable JavaScript ]

안드로이드(Android) 기본 알림창 AlertDialog 띄우는 방법

안드로이드 개발
반응형

안드로이드(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;
		}
	}
}

 

 

 

반응형
Posted by 녹두장군1
,