본문 바로가기
▶개발/Android

[Android] Dialog Message 기본 만들기

by 브라더 준 2018. 7. 11.

안드로이드 스튜디오, Dialog Message 기본 만들기




앱 어플리케이션을 이용하다보면 앱 종료시 위의 이미지와 같은 대화상자를 더러 볼 수 있다. 이 메시지 창은 다이얼로그 메시지로 불린다. 위의 상황에서는 사용자가 실수로 앱의 종료버튼을 누르더라도 다이얼로그 메시지를 통해 다시 한 번 되물어, 사용자 편의성을 증대시킬 수 있는 기능을 제공하고 있는 것이다.


 다이얼로그 메시지 적용법은 매우 간단하다. 크게 3가지 단계로 나눠진다.


첫 번째, AlertDialog.Builder를 통해 다이얼로그 메시지의 틀을 짠다.

두 번째, 틀을 짠 다이얼로그 메시지를 AlertDialog에 적용한다.

세 번째, 다이얼로그 메시지를 필요한 상황에서 show()한다.

(단계별 분류는 코드 내 주석에 형광펜으로 칠함)

import android.content.DialogInterface;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


        // 1. 틀짜기 - 다이얼로그 메시지 생성
        AlertDialog.Builder newBuilder = new AlertDialog.Builder(this);

        // 다이얼로그 메시지 타이틀 설정
        newBuilder.setTitle("어플리케이션을 종료여부");

        // 다이얼로그 메시지 본문 내용 설정
        newBuilder.setMessage("어플리케이션을 종료하시겠습니까?");

        // 다이얼로그 메시지 icon 설정
        newBuilder.setIcon(R.drawable.icon);

        newBuilder.setNegativeButton("예", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                // '예' 버튼 클릭
                finish();
            }
        });

        newBuilder.setPositiveButton("아니요", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                // '아니요' 버튼 클릭
                Toast.makeText(getApplicationContext(), "끝내지 않습니다.", Toast.LENGTH_SHORT).show();
            }
        });

        // '취소' 버튼 클릭
        newBuilder.setNeutralButton("취소", null);


        // 2. AlertDialog.Builder를 이용해 정의한 newBuilder를 dialog에 적용
        final AlertDialog dialog = newBuilder.create();

        // 버튼 클릭시 dialog message를 show함
        Button button = (Button)findViewById(R.id.button);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                dialog.show(); // 3. dialog를 show함
            }
        });
    }
}


 위 예시의 경우 버튼 클릭 시 다이얼로그 메시지가 출력하도록 설정했다. 또한 다이얼로그 메시지는 커스터마이징이 가능하다. style.xml 파일을 수정하여 메시지 텍스트의 크기나 색깔등 다양한 설정들을 만질 수 있다.

반응형