본문 바로가기
Android Studio

[Android Studio] AlertDialog 사용하기

by coding_su 2023. 1. 27.

📝AlertDialog 사용하기

AlertDialog 만들기

AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);

 

AlertDialog의 setCancelable을 false로 설정하면 팝업 메세지 외의 다른 부분을 클릭해도 사라지지 않는다

builder.setCancelable(false);

 

타이틀과 메세지 입력

builder.setTitle("퀴즈 끝");
builder.setMessage("맞춘 문제는 " + count + "개 입니다\n확인을 누르시면 퀴즈가 다시 시작됩니다");

 

버튼 만들기 (버튼은 3개까지 가능하다)

+ finish();를 입력하면 액티비티가 종료된다(앱이 종료된다)

builder.setNegativeButton("종료", new DialogInterface.OnClickListener() {
    // 종료 버튼을 눌렀을때 액티비티 종료하는 코드 작성
    @Override
    public void onClick(DialogInterface dialogInterface, int i) {
        finish();
    }
});

builder.setNeutralButton("중립",null);

builder.setPositiveButton("확인", new DialogInterface.OnClickListener() {
    // 확인버튼 눌렀을때 실행코드 작성
    @Override
    public void onClick(DialogInterface dialogInterface, int i) {
        // 첫번째 문제 화면에 출력(프로그래스바도 처음부터)
        currentQuizIndex = 0;
        Quiz q = quizArrayList.get(currentQuizIndex);
        txtQuiz.setText(q.question);
        progressBar.setProgress(currentQuizIndex + 1);
        // 정답 갯수 초기화
        count = 0;
    }

 

함수로 만들어 사용할때 마지막에 보여주는 코드도 입력해준다

builder.show();

 

사용한 전체코드

private void showAlertDialog() {
    AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
    // 이 다이얼로그의 외곽부분을 클릭했을때 사라지지 않도록 하는 코드
    builder.setCancelable(false);

    builder.setTitle("퀴즈 끝");
    builder.setMessage("맞춘 문제는 " + count + "개 입니다\n확인을 누르시면 퀴즈가 다시 시작됩니다");
    builder.setNegativeButton("종료", new DialogInterface.OnClickListener() {
        // 종료 버튼을 눌렀을때 액티비티 종료하는 코드 작성
        @Override
        public void onClick(DialogInterface dialogInterface, int i) {
            finish();
        }
    });
    builder.setNeutralButton("중립",null);
    builder.setPositiveButton("확인", new DialogInterface.OnClickListener() {
        // 확인버튼 눌렀을때 실행코드 작성
        @Override
        public void onClick(DialogInterface dialogInterface, int i) {
            // 첫번째 문제 화면에 출력(프로그래스바도 처음부터)
            currentQuizIndex = 0;
            Quiz q = quizArrayList.get(currentQuizIndex);
            txtQuiz.setText(q.question);
            progressBar.setProgress(currentQuizIndex + 1);
            // 정답 갯수 초기화
            count = 0;
        }
    });
    builder.show();
}

댓글