[안드로이드] 백 버튼 팝업창 종료 이벤트 예제 :: 안드로이드 설치 및 개발[SSISO Community]
 
SSISO 카페 SSISO Source SSISO 구직 SSISO 쇼핑몰 SSISO 맛집
추천검색어 : JUnit   Log4j   ajax   spring   struts   struts-config.xml   Synchronized   책정보   Ajax 마스터하기   우측부분

안드로이드 설치 및 개발
[1]
등록일:2018-08-25 09:50:45 (0%)
작성자:
제목:[안드로이드] 백 버튼 팝업창 종료 이벤트 예제

이러한 예제를 사용한 곳도 있지만 종료를 위해 뒤로가기 버튼을 누르면 팝업창이 뜨면서 광고 또는 공지가 정말 종료할 것이냐는 말과 함께 종료나 취소를 선택할 수 있게 됩니다. 여기서는 광고나 공지를 올리는 건 아니지만 종료를 위해 백 버튼을 누르면 팝업창에서 선택할 수 있는 형태를 AlertDialog를 통해 간단히 만들어 보겠습니다.


AlertDialog를 통해 팝업창을 띄어보자

  팝업창을 띄우는 방법은 여러 가지가 있지만 사용이 간단하면서도 구글에서 추구하는 Material Design으로 디자인 되어있으므로 다른것은 신경쓸필요가 없는 AlertDialog를 통해 팝업창을 만들어 보겠습니다. 우선 다음과 같이 Builder를 만들어주어야 합니다.


1
AlertDialog.Builder alert_ex = new AlertDialog.Builder(this);
cs


  AlertDialog를 만들어주는 Builder를 만들었습니다. 이제 정말 간단하게 Builder를 통해 팝업창의 메세지를 만들어보겠습니다.

1
alert_ex.setMessage("정말로 종료하시겠습니까?");
cs


  이제 '종료' 버튼과 '취소' 버튼을 만들어 보겠습니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
 alert_ex.setNegativeButton("취소"new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                // 내용(취소시 할 일이 없기 때문에 아무일도 하지 않게 아무것도 적지 
                         않았습니다)
            }
        });
 alert_ex.setPositiveButton("종료"new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                finishAffinity();
            }
        });
cs


  Negative와 Positive의 차이는 Negative가 왼쪽에 오는 버튼이되고 Positive가 오른쪽에 오는 버튼이 됩니다. 메시지하고 버튼을 만들어 주었는데 생각해보니 제목을 만들어 주지 않았습니다. 제목을 만들겠습니다.


1
alert_ex.setTitle("예제어플 알림!");
cs


  setTitle을 통해 간단하게 제목을 만들어 주었습니다. 이제 Builder를 실제 AlertDialog에 등록해주겠습니다.


1
AlertDialog alert = alert_ex.create();
cs


  앞부분은 AlerDialog이고 뒷 부분의 alert_ex는 Builder입니다. 이제 AlertDialog를 보여주기만 하면됩니다.


1
alert.show();
cs


  잘 만들어졌나 확인해 보겠습니다.



  잘 되는 것을 볼 수 있네요!! 예제를 만들어야 해서 매번 alert_ex.~~~로 코딩을 했지만 실제로는 다음과 같이도 사용할 수 있습니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
AlertDialog.Builder alert_ex = new AlertDialog.Builder(alertActivity);
alert_ex.setTitle("예제어플 알림!")
        .setNegativeButton("취소"new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                // 내용(취소시 할 일이 없기 때문에 아무일도 하지 않게 아무것도 적지 
                         않았습니다)
            }
        })
        .setPositiveButton("종료"new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                finishAffinity();
            }
        });
 
AlertDialog alert = alert_ex.create();
alert.show();
cs


  마지막에만 ; 을 붙이고 나머지는 '.'으로 이어서 사용할 수 있습니다. 또한 몇 가지 다른 옵션들도 있으니 필요하시면 이용하시면 됩니다.! 전체 코드는 다음과 같습니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
public class MainActivity extends AppCompatActivity{
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.my_layout);
    }
 
 
    @Override
    public void onBackPressed() {
        AlertDialog.Builder alert_ex = new AlertDialog.Builder(this);
        alert_ex.setMessage("정말로 종료하시겠습니까?");
 
        alert_ex.setPositiveButton("취소"new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
 
            }
        });
        alert_ex.setNegativeButton("종료"new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                finishAffinity();
            }
        });
        alert_ex.setTitle("예제어플 알림!");
        AlertDialog alert = alert_ex.create();
        alert.show();
 
    }
}
cs


[본문링크] [안드로이드] 백 버튼 팝업창 종료 이벤트 예제
[1]
코멘트(이글의 트랙백 주소:/cafe/tb_receive.php?no=34807
작성자
비밀번호

 

SSISOCommunity

[이전]

Copyright byCopyright ⓒ2005, SSISO Community All Rights Reserved.