안규 공부방

Android > AlertDialog - 예제들

등록일 : 2017-07-06 17:26 조회수 : 93,661

AlertDialog 예제 소스 입니다.
 
	AlertDialog.Builder db = new AlertDialog.Builder(this);
	db.setTitle("좋은데...")
		.setMessage("프로그램을 종료하시겠습니까?") 
		.setCancelable(true)
		.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {			
			public void onClick(DialogInterface dialog, int which) {
			finish(); //확인버튼 누루면 앱 종료
			}
		})
	.setNegativeButton(android.R.string.cancel, null)
	.show();
	


타이틀을 추가하기 위해 setMessage() 메소드를 사용하고, 다이얼로그 취소여부는 setCancelable(boolean) 이라는 메소드로 지정해야 합니다.

setCancelable() 메소드의 값이 false 면 "BACK" 버튼 등으로 다이얼로그를 취소할 수 없게 됩니다.


버튼으로는 다이얼로그에 총 3가지의 버튼만을 지원합니다.
1. 긍정버튼 ( setPositiveButton() )
2. 중립버튼 ( setNeutralButton() )
3. 부정버튼 ( setNegativeButton() )


각각의 버튼에 대한 이벤트는 DialogInterface.OnClickListener 로 처리하면 됩니다.
이 리스너 안에는 onClick() 메소드 하나만 정의되어 있네요

Dialog_test.java
 
	setContentView(R.layout.testdialog);
	
	Button btn1 = (Button) findViewById(R.id.button1);
	
	btn1.setOnClickListener(new OnClickListener() {
		@Override
		public void onClick(View arg0) {
			new AlertDialog.Builder(Dialog_test.this)
			.setTitle("경고")
			.setMessage("시간 초과!!!")
			.setIcon(R.drawable.icon)
			.setCancelable(false)	// Back Button 동작 안하도록 설정

			// "계속" 버튼
			.setPositiveButton("계속",new DialogInterface.OnClickListener() {
				public void onClick(DialogInterface dialog, int which) {
					Toast.makeText(Dialog_test.this, "계속 하세요~", Toast.LENGTH_SHORT).show();
				}
			})
			// "무시" 버튼		
			.setNeutralButton("무시", new DialogInterface.OnClickListener() {
				public void onClick(DialogInterface dialog, int which) {
					Toast.makeText(Dialog_test.this, "무시 버튼 눌렀네요", Toast.LENGTH_SHORT).show();
				}
			})

			// "종료" 버튼
			.setNegativeButton("종료", new DialogInterface.OnClickListener() {
				public void onClick(DialogInterface dialog, int which) {
					Toast.makeText(Dialog_test.this, "종료 버튼 눌렀네요", Toast.LENGTH_SHORT).show();						
				}
			})

			.show();
		}        	
	});	         
	



1. 리스트 목록 추가하기



다이얼로그의 리스트 목록 입니다.

리스트 추가는 setItems() 메소드를 이용하는데요,

마찬가지로 타이틀을 추가하고, 표시할 아이템의 배열과 아이템 선택시에 이벤트 처리를 위한 리스너

(DialogInterface.OnClickListener) 를 setItems() 메소드의 파라미터로 전달합니다.
 
	Button btn2 = (Button) findViewById(R.id.button1);

	btn2.setOnClickListener(new OnClickListener() {
		@Override
		public void onClick(View arg0) {
			final CharSequence[] items = {"Red", "Green", "Blue"};
			final int colors[] = { 0xFFFF0000, 0xFF00FF00, 0xFF0000FF};

			new AlertDialog.Builder(Dialog_test.this)
			.setTitle("Pick a color")

			// 각 항목을 설정하고 클릭했을 때 동작을 지정함
			.setItems(items, new DialogInterface.OnClickListener() {
				public void onClick(DialogInterface dialog, int item) {
					btn2.setBackgroundColor(colors[item]);
				}
			}).show();
		
		}
	});


2. 체크박스, 라디오버튼 추가하기

다이얼로그 리스트에 체크박스 아이템의 추가는 setMultiChoiceItems() 메소드로, 라디오버튼은 setSingleChoiceItems() 메소드로 추가합니다.
 

	btn2.setOnClickListener(new OnClickListener() {
		@Override
		public void onClick(View arg0) {
			
			final String[] cars = { "SM3", "SM5", "SM7", "SONATA", "AVANTE", "붕붕" };
			AlertDialog.Builder radioDialog = new AlertDialog.Builder(Dialog_test.this);

			radioDialog
				.setTitle("자동차")
				.setSingleChoiceItems(cars, -1, new DialogInterface.OnClickListener() {
					
					@Override
					public void onClick(DialogInterface dialog, int which) {
						// TODO Auto-generated method stub

						Toast.makeText(Dialog_test.this, "선택 : " + cars[which], Toast.LENGTH_SHORT).show();

						//text.setText(cars[which]);
					}
				})
				.setNegativeButton("닫기", null)
				.show();
		}
	});    
	
 
※ 혹시 도움이 되셨다면 댓글에 한마디 남겨주세요!
작성자   비밀번호
자동글 방지     (자동글 방지 기능입니다.)
내용   댓글달기 
이메일 문의 : cak0280@nate.com  
Copyright 2000 By ENTERSOFT.KR All Rights Reserved.