๊ด€๋ฆฌ ๋ฉ”๋‰ด

ruriruriya

[Android] ์•ˆ๋“œ๋กœ์ด๋“œ - AlertDialog ์•ˆ๋‚ด ํŒ์—… ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ• ๋ณธ๋ฌธ

๐Ÿค–Android

[Android] ์•ˆ๋“œ๋กœ์ด๋“œ - AlertDialog ์•ˆ๋‚ด ํŒ์—… ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•

๋ฃจ๋ฆฌ์•ผใ…‘ 2023. 12. 23. 10:19
๋ฐ˜์‘ํ˜•

AlertDialog๋Š” ์•ˆ๋“œ๋กœ์ด๋“œ ์•ฑ์—์„œ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ฉ”์‹œ์ง€, ์•Œ๋ฆผ ๋˜๋Š” ์„ ํƒ์„ ์š”์ฒญํ•˜๊ธฐ ์œ„ํ•ด ํŒ์—… ํ˜•ํƒœ๋กœ ๋‚˜ํƒ€๋‚˜๋Š” ๋Œ€ํ™” ์ƒ์ž์ด๋‹ค. ์ด ๋Œ€ํ™” ์ƒ์ž๋Š” ์‚ฌ์šฉ์ž์˜ ์ฃผ์˜๋ฅผ ๋Œ๊ณ , ๋ฉ”์‹œ์ง€๋ฅผ ์ „๋‹ฌํ•˜๊ฑฐ๋‚˜ ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ์ •๋ณด๋ฅผ ์ˆ˜์ง‘ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋œ๋‹ค.

 

1. AlertDialog import

import androidx.appcompat.app.AlertDialog;

2. showAlertDialog() ๋ฉ”์†Œ๋“œ ์ƒ์„ฑ

  • setCancelable(boolean cancelable): ์ด ๋ฉ”์„œ๋“œ๋Š” AlertDialog๊ฐ€ ์ทจ์†Œ ๊ฐ€๋Šฅํ•œ์ง€ ์—ฌ๋ถ€๋ฅผ ์„ค์ •ํ•œ๋‹ค.
    ์ทจ์†Œ ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ ์‚ฌ์šฉ์ž๊ฐ€ ๋’ค๋กœ๊ฐ€๊ธฐ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๊ฑฐ๋‚˜ ๋Œ€ํ™” ์ƒ์ž ์™ธ๋ถ€๋ฅผ ํ„ฐ์น˜ํ•˜์—ฌ ๋Œ€ํ™” ์ƒ์ž๋ฅผ ๋‹ซ์„ ์ˆ˜ ์žˆ๋‹ค.
    true๋กœ ์„ค์ •ํ•˜๋ฉด ๊ฐ€๋Šฅํ•˜๊ณ , false๋กœ ์„ค์ •ํ•˜๋ฉด ๋‹ซํž ์ˆ˜ ์—†๋‹ค.
  • setTitle(CharSequence title): ์ด ๋ฉ”์„œ๋“œ๋Š” AlertDialog์˜ ์ œ๋ชฉ์„ ์„ค์ •ํ•œ๋‹ค. ์ œ๋ชฉ์€ AlertDialog ์ƒ๋‹จ์— ํ‘œ์‹œ๋˜๋Š” ํ…์ŠคํŠธ๋‹ค.
  • setMessage(CharSequence message): ์ด ๋ฉ”์„œ๋“œ๋Š” AlertDialog์˜ ๋ฉ”์‹œ์ง€๋ฅผ ์„ค์ •ํ•œ๋‹ค. ๋ฉ”์‹œ์ง€๋Š” ์‚ฌ์šฉ์ž์—๊ฒŒ ํ‘œ์‹œ๋˜๋Š” ์ฃผ์š” ๋‚ด์šฉ์„ ์„ค๋ช…ํ•˜๋Š” ํ…์ŠคํŠธ๋‹ค.
  • setPositiveButton(CharSequence text, DialogInterface.OnClickListener listener): ์ด ๋ฉ”์„œ๋“œ๋Š” AlertDialog์— ๊ธ์ •์ ์ธ ๋™์ž‘์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฒ„ํŠผ์„ ์ถ”๊ฐ€ํ•œ๋‹ค. text๋Š” ๋ฒ„ํŠผ์— ํ‘œ์‹œ๋  ํ…์ŠคํŠธ์ด๊ณ , listener๋Š” ๋ฒ„ํŠผ์„ ํด๋ฆญํ–ˆ์„ ๋•Œ ํ˜ธ์ถœ๋˜๋Š” ๋™์ž‘์„ ์ •์˜ํ•œ๋‹ค.
  • setNegativeButton(CharSequence text, DialogInterface.OnClickListener listener): ์ด ๋ฉ”์„œ๋“œ๋Š” AlertDialog์— ๋ถ€์ •์ ์ธ ๋™์ž‘์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฒ„ํŠผ์„ ์ถ”๊ฐ€ํ•œ๋‹ค. text๋Š” ๋ฒ„ํŠผ์— ํ‘œ์‹œ๋  ํ…์ŠคํŠธ์ด๊ณ , listener๋Š” ๋ฒ„ํŠผ์„ ํด๋ฆญํ–ˆ์„ ๋•Œ ํ˜ธ์ถœ๋˜๋Š” ๋™์ž‘์„ ์ •์˜ํ•œ๋‹ค.
  • show(): AlertDialog๋ฅผ ํ™”๋ฉด์— ํ‘œ์‹œํ•œ๋‹ค. create() ๋ฉ”์„œ๋“œ๋กœ AlertDialog๋ฅผ ๋งŒ๋“  ํ›„์— ์ด ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ์‹ค์ œ๋กœ ํ™”๋ฉด์— ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ๋‹ค.
    private void showAlertDialog(){
        AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
        // ์ด ๋‹ค์ด์–ผ๋กœ๊ทธ์˜ ์™ธ๊ณฝ ๋ถ€๋ถ„์„ ๋ˆŒ๋ €์„ ๋•Œ, ์‚ฌ๋ผ์ง€์ง€ ์•Š๋„๋ก ํ•˜๋Š” ์ฝ”๋“œ
        builder.setCancelable(false); // true : ์ทจ์†Œ ํ•  ๋•Œ // false : ์ทจ์†Œ ์•ˆ๋  ๋•Œ
        builder.setTitle("ํ€ด์ฆˆ ๋.");
        builder.setMessage("ํ€ด์ฆˆ๊ฐ€ ๋ชจ๋‘ ๋๋‚ฌ์Šต๋‹ˆ๋‹ค.๋งž์ถ˜ ์ •๋‹ต์€ "+count+"๊ฐœ์ž…๋‹ˆ๋‹ค.\n ๋‹ค์‹œ ์‹œ์ž‘ํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?");
        builder.setPositiveButton("ํ™•์ธ", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {

                currentIndex = 0;
                count =0;

                Quiz quiz = quizArrayList.get(currentIndex);

                txtQuiz.setText(quiz.question);
                progressBar.setProgress(currentIndex+1);
                txtResult.setText("๊ฒฐ๊ณผ");

//                recreate();
//                progressBar.setProgress(0);
            }
        }); // ๊ธ์ • ๋ฒ„ํŠผ.
        builder.setNegativeButton("์ทจ์†Œ", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                // ํ˜„์žฌ ์ด ์•กํ‹ฐ๋น„ํ‹ฐ๋ฅผ ์ข…๋ฃŒํ•œ๋‹ค. => ์•กํ‹ฐ๋น„ํ‹ฐ๊ฐ€ 1๊ฐœ๋ฉด, ์•ฑ์ด ์ข…๋ฃŒ.
                finish();

            }
        }); // ๋ถ€์ • ๋ฒ„ํŠผ.
        builder.show();
    }

 

2. ํ™•์ธ

๋ฐ˜์‘ํ˜•