이 예제는 Android 앱에서 AlertDialog(알림 대화상자)를 표시하는 방법을 단계별로 설명합니다. 사용자가 뒤로 가기 버튼을 눌렀을 때 '종료하시겠습니까?'라는 확인 창을 띄우는 실용적인 시나리오를 통해 구현 과정을 살펴보겠습니다.
1단계: 새 프로젝트 생성
Android Studio에서 File → New Project 메뉴로 이동한 후, 새 프로젝트 생성에 필요한 모든 세부 정보를 입력하여 새 프로젝트를 만듭니다.
2단계: 레이아웃 파일 작성 (res/layout/activity_main.xml)
아래 코드를 activity_main.xml에 추가합니다. 화면 중앙에 안내 문구를 배치하는 간단한 레이아웃입니다.
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="https://schemas.android.com/apk/res/android" xmlns:tools="https://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="뒤로 가기 버튼을 눌러보세요." android:textStyle="bold" android:textSize="24sp" android:layout_centerInParent="true" /> </RelativeLayout>
3단계: MainActivity.java 코드 작성
아래 코드를 src/MainActivity.java에 추가합니다. 핵심은 onBackPressed() 메서드를 오버라이드하여, 뒤로 가기 버튼이 눌렸을 때 AlertDialog를 생성하고 표시하는 부분입니다.
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public void onBackPressed() {
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
builder.setMessage("앱을 종료하시겠습니까?");
builder.setTitle("알림!");
builder.setCancelable(false);
builder.setPositiveButton("예", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
finish();
}
});
builder.setNegativeButton("아니오", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
});
AlertDialog alertDialog = builder.create();
alertDialog.show();
}
}코드 설명:
builder.setMessage()– 대화상자에 표시될 본문 메시지를 설정합니다.builder.setTitle()– 대화상자의 제목을 지정합니다.builder.setCancelable(false)– 대화상자 바깥 영역이나 뒤로 가기 버튼으로 닫지 못하게 하여, 반드시 버튼으로 응답하도록 강제합니다.setPositiveButton()– '예' 버튼 클릭 시finish()를 호출해 액티비티를 종료합니다.setNegativeButton()– '아니오' 버튼 클릭 시dialog.cancel()로 대화상자만 닫습니다.
4단계: AndroidManifest.xml 확인
아래와 같이 androidManifest.xml에 MainActivity가 정상적으로 등록되어 있는지 확인합니다.
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="https://schemas.android.com/apk/res/android" package="app.com.sample"> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
앱 실행 및 결과 확인
이제 애플리케이션을 실행해 보겠습니다. 실제 Android 기기를 컴퓨터에 연결했다고 가정합니다. Android Studio에서 프로젝트의 액티비티 파일 중 하나를 연 뒤, 툴바의 Run(실행) 아이콘을 클릭합니다. 실행 옵션에서 자신의 모바일 기기를 선택하면, 기기에 아래와 같은 기본 화면이 표시됩니다.

여기서 뒤로 가기 버튼을 누르면 다음과 같이 '앱을 종료하시겠습니까?'라는 알림 대화상자가 나타나는 것을 확인할 수 있습니다.

마무리
이처럼 AlertDialog.Builder를 활용하면 몇 줄의 코드만으로 사용자에게 확인을 요청하는 대화상자를 손쉽게 구현할 수 있습니다. 로그아웃 확인, 삭제 경고, 종료 확인 등 다양한 상황에서 유용하게 활용할 수 있으니, 필요에 따라 메시지와 버튼 동작을 커스터마이징해서 사용해 보세요.