Computer >> 컴퓨터 >  >> 프로그래밍 >> Android

안드로이드에서 중립(Neutral) 버튼이 있는 대화 상자 만드는 방법

이 튜토리얼에서는 안드로이드에서 중립(Neutral) 버튼이 포함된 대화 상자(AlertDialog)를 만드는 방법을 단계별로 알아봅니다. 일반적인 '확인'과 '취소' 버튼 외에 세 번째 선택지를 사용자에게 제공해야 할 때 유용하게 활용할 수 있습니다.

1단계: 새 프로젝트 생성

안드로이드 스튜디오를 실행하고 File ⇒ New Project를 선택한 뒤, 필요한 항목을 모두 입력하여 새 프로젝트를 생성합니다.

2단계: 레이아웃 파일 작성

res/layout/activity_main.xml 파일에 아래 코드를 추가합니다.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="https://schemas.android.com/apk/res/android"
    android:id="@+id/parent"
    xmlns:tools="https://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity"
    android:gravity="center"
    android:orientation="vertical">
    <Button
        android:id="@+id/customDialog"
        android:text="Custom Dialog"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
</LinearLayout>

위 코드는 화면 중앙에 버튼 하나를 배치하는 간단한 LinearLayout 구조입니다. 사용자가 이 버튼을 클릭하면 대화 상자가 나타나도록 구성할 것입니다.

3단계: MainActivity 코드 작성

src/MainActivity.java 파일에 아래 코드를 추가합니다.

package com.example.andy.myapplication;
import android.content.DialogInterface;
import android.os.Build;
import android.os.Bundle;
import android.support.annotation.RequiresApi;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {
    @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN)
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        findViewById(R.id.customDialog).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                final AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this, R.style.CustomAlertDialog);
                builder.setTitle("Alert Dialog");
                builder.setMessage("Lorem Ipsum is simply dummy text of the printing and typesetting industry.
                    Lorem Ipsum has been the industry's standard dummy text ever since the 1500s");
                builder.setPositiveButton("yes", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        Toast.makeText(MainActivity.this, "You have clicked yes", Toast.LENGTH_LONG).show();
                    }
                });
                builder.setNegativeButton("No", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        Toast.makeText(MainActivity.this, "You have clicked No", Toast.LENGTH_LONG).show();
                    }
                });
                builder.setNeutralButton("Cancel", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        Toast.makeText(MainActivity.this, "You have clicked Neutral", Toast.LENGTH_LONG).show();
                    }
                });
                final AlertDialog alertDialog = builder.create();
                alertDialog.show();
            }
        });
    }
}

위 코드에서는 사용자가 버튼을 클릭하면 "Yes", "No", "Cancel" 세 개의 버튼이 있는 대화 상자가 표시됩니다. 각 버튼은 setPositiveButton(), setNegativeButton(), setNeutralButton() 메서드로 설정되며, 어떤 버튼을 눌렀는지에 따라 서로 다른 토스트(Toast) 메시지가 화면에 나타납니다. 특히 setNeutralButton()이 바로 이번 예제의 핵심으로, 중립적인 세 번째 선택지를 추가하는 역할을 합니다.

애플리케이션 실행하기

이제 앱을 직접 실행해 보겠습니다. 실제 안드로이드 기기가 컴퓨터에 연결되어 있다고 가정합니다. 안드로이드 스튜디오에서 프로젝트의 액티비티 파일 중 하나를 연 뒤, 툴바의 Run 아이콘을 클릭하세요. 목록에서 본인의 모바일 기기를 선택하면 기기에 아래와 같은 기본 화면이 표시됩니다.

안드로이드에서 중립(Neutral) 버튼이 있는 대화 상자 만드는 방법

위 결과는 앱의 초기 화면입니다. 여기서 버튼을 클릭하면 Yes, No, Cancel(중립) 버튼이 포함된 대화 상자가 열립니다.

안드로이드에서 중립(Neutral) 버튼이 있는 대화 상자 만드는 방법

이제 대화 상자에서 중립(Cancel) 버튼을 클릭해 보면, 아래와 같이 해당 버튼이 눌렸다는 토스트 메시지가 출력되는 것을 확인할 수 있습니다.

안드로이드에서 중립(Neutral) 버튼이 있는 대화 상자 만드는 방법