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();
}
});