알람 대화상자는 사용자에게 메시지를 전달하며 '예', '아니오'와 같은 전형적인 응답을 처리해 사용자에게 확인을 받고나 선택하게 할 때 사용된다.
다음은 TextView와 Button만 있는 레이아웃에 버튼을 누르면 대화상자를 띄워주는 간단한 코드이다.
package org.techtown.sampledialog;
import androidx.appcompat.app.AppCompatActivity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView = findViewById(R.id.textView);
Button button = findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showDialog();
}
});
}
private void showDialog(){
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("안내");
builder.setMessage("종료하시겠습니까?");
builder.setIcon(android.R.drawable.ic_dialog_alert);
builder.setPositiveButton("예", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
String message = "예 버튼이 눌렸습니다.";
textView.setText(message);
}
});
builder.setNegativeButton("아니오", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
String message = "아니오 버튼이 눌렸습니다.";
textView.setText(message);
}
});
AlertDialog dialog = builder.create();
dialog.show();
}
}
AlertDialog 클래스는 알람 대화상자를 보여주는 가장 단순한 방법을 제공해준다.
AlertDialog.Builder builder = new AlertDialog.Builder(this);
알림 대화상자의 타이틀은 setTitle 메소드로, 내용은 setMessage 메소드로, 아이콘은 setIcon 메소드로 설정할 수 있다.
builder.setTitle("안내");
builder.setMessage("종료하시겠습니까?");
builder.setIcon(android.R.drawable.ic_dialog_alert);
'예', '아니오'와 같은 버튼의 설정은 setPositiveButton과 setNegativeButton 메소드를 사용한다.
builder.setPositiveButton("예", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
String message = "예 버튼이 눌렸습니다.";
textView.setText(message);
}
});
builder.setNegativeButton("아니오", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
String message = "아니오 버튼이 눌렸습니다.";
textView.setText(message);
}
});
마지막으로 대화상자 객체를 생성 후 보여준다.
AlertDialog dialog = builder.create();
dialog.show();