AlertDialog.Builder 생성 및 설정
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
// setCancelable(false): 다이얼로그 외부를 터치해도 닫히지 않도록 설정
builder.setCancelable(false);
builder.setTitle("퀴즈 끝!");
builder.setMessage("지금까지 맞춘 문제는 " + correctCnt + "개 입니다. 다시풀기를 누르시면 퀴즈가 다시 시작되고, 종료를 누르시면 퀴즈가 종료됩니다.");
버튼 설정
AlertDialog 의 버튼은 3개까지 사용할 수 있다.
1. 긍정 버튼 설정
builder.setPositiveButton("다시풀기", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// 다시풀기는 데이터를 초기화 시켜줘야 한다.
currentQuizIndex = 0;
// 1. 첫번째 문제가 다시 화면에 나와야 한다.
Quiz quiz = quizArrayList.get(currentQuizIndex);
txtQuiz.setText(quiz.getQuestion());
// 2. 프로그레스바도 처음부터 나와야 한다.
progressBar.setProgress(currentQuizIndex + 1);
// 3. 결과도 초기화 한다.
txtResult.setText("결과");
correctCnt = 0;
}
});
2. 부정 버튼 설정
builder.setNegativeButton("종료", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// 현재의 액티비티를 종료시키는 함수 => finish()
finish();
}
});
다이얼로그 표시
builder.show();
전체 코드
private void showAlertDialog() {
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
builder.setCancelable(false);
builder.setTitle("퀴즈 끝!");
builder.setMessage("지금까지 맞춘 문제는 "+correctCnt+"개 입니다." +
" 다시풀기를 누르시면 퀴즈가 다시 시작되고, 종료를 누르시면 퀴즈가 종료됩니다.");
builder.setPositiveButton("다시풀기", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// 다시풀기는 데이터를 초기화 시켜줘야 한다.
currentQuizIndex = 0;
// 1. 첫번째 문제가 다시 화면에 나와야 한다.
Quiz quiz = quizArrayList.get(currentQuizIndex);
txtQuiz.setText(quiz.getQuestion());
// 2. 프로그레스바도 처음부터 나와야 한다.
progressBar.setProgress(currentQuizIndex+1);
// 3. 결과도 초기화 한다.
txtResult.setText("결과");
correctCnt = 0;
}
});
builder.setNegativeButton("종료", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// 현재의 액티비티를 종료시키는 함수 => finish()
finish();
}
});
builder.show();
}
'Android Studio' 카테고리의 다른 글
[Android Studio] Activity 간의 데이터 전달 (단방향, 양방향) (0) | 2024.06.07 |
---|---|
[Android Studio] Activity 라이프 사이클 Life Cycle (0) | 2024.06.07 |
[Android Studio] Toast / Snackbar (0) | 2024.06.05 |
[Android Studio] LinearLayout (0) | 2024.06.05 |
[Android Studio] 버튼 클릭하면 동작하는 코드 작성하는 방법 (0) | 2024.06.04 |