본문 바로가기
일상생활 이야기/안드로이드 스튜디오 독학하기

안드로이드 스튜디오 독학하기 11일째

by 인터넷떠돌이 2017. 1. 28.
반응형

안녕하세요?


이번 포스팅에서는 안드로이드 스튜디오에서 경고창을 띄우는 것을 실습해 보고자 합니다. 일단, 이 부분에 대해서는 [하루만에 배우는 안드로이드 앱 만들기]라는 책에서도 그다지 내용이 없기는 없었습니다.


일단 실습을 위해서 안드로이드 스튜디오 상에서 새 프로젝트 만들기를 해서 프로젝트 명은 [Sample5-7]로 만들어 두었습니다. 우선 이번 프로젝트에서는 activity_main.xml의 design탭에서 할일이 하나도 없습니다. 그냥 MainActivity.java로 가서 다음과 같은 코딩을 시작하면 됩니다.


가장 상단에 있는 import를 열어서 다음과 같은 코딩을 먼저 추가합니다.


import android.app.AlertDialog;

import android.content.DialogInterface;

import android.view.Menu;


위에 나온 이 3줄은 바로 입력하지 않더라도, 아래있는 코드를 입력하고 나면, 여기서 붉은색으로 에러라고 뜨는 부분이 나오는데, 주로 AlertDialog와 DialogInterface항목에서 발생할 것입니다. 여기서 Alt+Enter를 누르면 자동으로 추가가 됩니다.


그럼 이제 경고 메세지를 띄우기 위해서 다음과 같이 코딩을 합니다.


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

alert_confirm.setMessage("지금 실행되고 있는 앱을 종료하시겠습니까?")

              .setCancelable(false)

              .setPositiveButton("네",new DialogInterface.OnClickListener(){

              @Override

              public void onClick(DialogInterface dialog, int which){

               finish();

              }

             })

               .setNegativeButton("아뇨",new DialogInterface.OnClickListener(){

               @Override

               public void onclick(DialogInterface dialog, int which){

                 return;

                }

               });

AlertDialog alert = alert.confirm.creat();

alert.show();


일단 여기서 기본적인 형식은 다음과 같은 것으로 추정이 됩니다. 


AlertDialog.Builder 변수이름 = new AlertDialog.Builder(액티비티이름.this);

변수이름.setTitle("내용") //이 부분은 경고창의 윗 부분인 타이틀에 해당하는 부분에 출력될 메세지를 입력하는 부분입니다.

         .setCancerlable(false) //뒤로 버튼 클릭시 취소 가능 설정

         .setPositiveButton("확인 같은 메세지",new DialogInterface.OnClickListener(){

          // 이 부분은 바로 '예'같은 메세지 처럼 긍정 의미를 표현하는 부분에 해당하는 버튼을 누를 경우를 설정합니다.

             public void onClick(DialogInterface dialog, int which){

                  finish();

             }

            }) // 이 부분은 바로 긍정에 해당하는 버튼을 눌렀을 때 앱을 종료하는 내용입니다.

          .setNegativeButton("취소 같은 메세지",new DialogInterface.OnClickListener(){

           //이 부분은 바로 '아니오' 같은 메세지 처럼 부정 의미를 표현하는 버튼을 누를 경우 일어날 일을 설정합니다.

              public void onClick(DialogInterface dialog, int which){

                  returen;

             }

            });

            //이 부분은 바로 부정에 해당하는 버튼을 눌렀을 때 경고창만 종료하는 내용입니다.

         

이처럼 위와 같은 내용으로 한 세트를 구성하게 됩니다. 하지만 이렇게만 입력하면 경고창이 아예 뜨지를 않습니다. 제 경우에는 왜 그런지 몰랐습니다만, 다음과 같은 코드를 추가해야 뜨게 됩니다.


AlertDialog alert = 변수이름.create();

alert.show();


위 코드의 경우에는 일단 앱이 실행되지 마자 경고창이 뜨도록 하는 명령어입니다. 특히 가장 아래 있는 alert.show();를 빼먹어도 문제는 없지만, 경고창은 뜨라는 명령어를 입력하지 않았기에 경고창만 뜨지 않는 상황이 발생합니다.


일단 옆의 스크린샷은 USB 케이블로 연결된 갤럭시 S4에서 앱을 실행한 화면입니다. 경고창에서 '네'를 클릭하면 바로 앱을 종료하게 되며, '아뇨'를 클릭하면 계속 앱을 실행하게 됩니다.


이번 실습의 의의는 일단 이 경고창이라는 요소를 제어하는 방법에 대해서 기초적인 것을 배웠다는 것에 있는 듯 합니다. 다만 아쉬운 점이라면 아직은 이 경고창을 다양한 상황에 따라 입맛대로 띄울 수가 없다는 것이 흠이기는 하지만, 일단 이번 실습에서 다루고 있는 내용은 여기까지 입니다.


일단 [하루만에 배우는 안드로이드 앱 만들기]란 책의 얼추 절반은 왔지만, 아직도 갈길일 멀어 보이기는 합니다. 다만 이 책을 보면 하루만에 배울 수는 있지만, 깊이 배우는 것은 별개의 문제라는 생각이 듭니다. 특히 저와 같이 프로그래밍 공부를 해보지 않은 사람에게는 너무 생략된 설명이 많다는 생각이 듭니다.

반응형