반응형
앱 개발 시 다양하게 활용 할 안드로이드의 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();
}
}
}
반응형
'안드로이드' 카테고리의 다른 글
안드로이드 - 라이브 배경화면(Live Wallpaper) #1 기본구조 (0) | 2015.06.12 |
---|---|
안드로이드 - error: Resource entry xxxxxxx is already defined (0) | 2015.06.11 |
안드로이드 - 버튼 모양 바꾸기 (0) | 2015.06.03 |
안드로이드 - 텍스트뷰(TextView) 항상 화면의 아래에 표시하기 (0) | 2015.05.19 |
안드로이드 - Activity 가로 또는 세로 고정하기 (0) | 2015.05.15 |
댓글