본문 바로가기
안드로이드

안드로이드 - AlertDialog 활용하기

by Dokon Jang 2015. 6. 4.
반응형

앱 개발 시 다양하게 활용 할 안드로이드의 AlertDilog를 소개합니다.

 

1. 알림 AlertDialog

  - 사용자에게 알림 메세지를 AlertDialog를 사용하여 알립니다.

  (1) Java 소스

AlertDialog.Builder dialog = new AlertDialog.Builder(MainActivity.this);
dialog.setTitle("알림");
dialog.setMessage("알림 다이얼로그");
dialog.show();
 

 

 (2) 실행 화면

 

2. 입력 AlertDialog

  - 사용자에게 입력을 받아야 하는 경우에 사용합니다.

  - 즉, 사용자에게 이름, 주소 등의 정보를 입력 받아야 할 경우 유용하게 사용 할 수 있습니다.

  (1) Java 소스

final EditText etEdit = new EditText(this);
AlertDialog.Builder dialog = new AlertDialog.Builder(MainActivity.this);
dialog.setTitle("입력");
dialog.setView(etEdit);
// OK 버튼 이벤트
dialog.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
    public void onClick(DialogInterface dialog, int which) {
        String inputValue = etEdit.getText().toString();
        Toast.makeText(MainActivity.this, inputValue, Toast.LENGTH_SHORT).show();
    }
});
// Cancel 버튼 이벤트
dialog.setNegativeButton("Cancel",new DialogInterface.OnClickListener() {
    public void onClick(DialogInterface dialog, int which) {
        dialog.cancel();
    }
});
dialog.show();
 

 

  (2) 실행 화면

 

 

3. 리스트 AlertDialog

  - 사용자에게 리스트로 된 목록 중 하나를 입력받을 필요가 있을 경우 사용하면 됩니다.

  (1) Java 소스

final CharSequence[] items = new CharSequence[]{"(1) 알람", "(2) 입력", "(3) 리스트"};
AlertDialog.Builder dialog = new AlertDialog.Builder(MainActivity.this);
dialog.setTitle("리스트");
dialog.setItems(items, new DialogInterface.OnClickListener() {
    // 리스트 선택 시 이벤트
    public void onClick(DialogInterface dialog, int which) {
        Toast.makeText(MainActivity.this, items[which], Toast.LENGTH_SHORT).show();
    }
});
dialog.show();
 

 

 (2) 실행 화면

 

 

[전체 소스]

1. Layuout XML

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <Button
        android:id="@+id/btn_alert"
        android:text="알림 다이얼로그"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

    <Button
        android:id="@+id/btn_input"
        android:text="입력 다이얼로그"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

    <Button
        android:id="@+id/btn_list"
        android:text="리스트 다이얼로그"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />
</LinearLayout>
 

 

2. Java 소스

import java.util.ArrayList;
import java.util.Locale;

import android.app.Activity;
import android.app.AlertDialog;
import android.app.DatePickerDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.support.v7.app.ActionBarActivity;
import android.support.v7.app.ActionBar;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.support.v4.app.FragmentPagerAdapter;
import android.os.Bundle;
import android.support.v4.view.ViewPager;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.view.inputmethod.InputMethodManager;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;


public class MainActivity extends Activity implements View.OnClickListener{

    Button btnAlert;
    Button btnInput;
    Button btnList;

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

        // 버튼 변수
        btnAlert = (Button)findViewById(R.id.btn_alert);
        btnInput = (Button)findViewById(R.id.btn_input);
        btnList = (Button)findViewById(R.id.btn_list);

        // 버튼에 이벤트 지정
        btnAlert.setOnClickListener(this);
        btnInput.setOnClickListener(this);
        btnList.setOnClickListener(this);

    }


    @Override
    public void onClick(View v) {
        if(v.equals(btnAlert)){
            AlertDialog.Builder dialog = new AlertDialog.Builder(MainActivity.this);
            dialog.setTitle("알림");
            dialog.setMessage("알림 다이얼로그");
            dialog.show();
        }else if(v.equals(btnInput)){
            final EditText etEdit = new EditText(this);
            AlertDialog.Builder dialog = new AlertDialog.Builder(MainActivity.this);
            dialog.setTitle("입력");
            dialog.setView(etEdit);
            // OK 버튼 이벤트
            dialog.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int which) {
                    String inputValue = etEdit.getText().toString();
                    Toast.makeText(MainActivity.this, inputValue, Toast.LENGTH_SHORT).show();
                }
            });
            // Cancel 버튼 이벤트
            dialog.setNegativeButton("Cancel",new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int which) {
                    dialog.cancel();
                }
            });
            dialog.show();
        }else if(v.equals(btnList)){
            final CharSequence[] items = new CharSequence[]{"(1) 알람", "(2) 입력", "(3) 리스트"};
            AlertDialog.Builder dialog = new AlertDialog.Builder(MainActivity.this);
            dialog.setTitle("리스트");
            dialog.setItems(items, new DialogInterface.OnClickListener() {
                // 리스트 선택 시 이벤트
                public void onClick(DialogInterface dialog, int which) {
                    Toast.makeText(MainActivity.this, items[which], Toast.LENGTH_SHORT).show();
                }
            });
            dialog.show();
        }
    }
}
 

 

반응형

댓글