안녕하세요 ! 초보개발자 입니다.
이 블로그는 개인 공부 정리용 블로그 입니다.
혹 잘못된 내용이 있다면 지적 부탁드리겠습니다.
그리고 질문주신다면 최대한 아는선에서 답변드리도록 하겠습니다.
그럼 시작하도록 하겠습니다.
알림창(AlertDialog) 이용하기
어플을 사용하다 보면 위와 같은 알림창을 자주 볼 수 있습니다. 이러한 것을 알림창(AlertDialog) 이라고 합니다. 이러한 알림창은 일방적으로 메시지를 전달하는 역활을 주로 하며 '네' , 혹은 '아니오' 같은 응답을 처리하는데 사용이 됩니다.
예제를 통해서 살펴보겠습니다. 먼저 메인화면에서 버튼을 클릭하면 두번째 화면으로 넘어 갑니다. 두번째 화면은 두개의 버튼으로 이루어져 있으며 첫번째 버튼은 이전 화면으로 넘어가는 버튼이며 두번째 버튼 클릭시 위 그림과 같은 알림창을 띄울 것 입니다. '네' 를 누르면 종료가 되고 '아니오' 를 누르면 알림창만 없어지도록 해보겠습니다.
먼저 메인 화면 xml 입니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | <?xml version="1.0" encoding="utf-8"?> <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.donghyun.toast.MainActivity"> <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="두번째 액티비티로 이동" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" /> </android.support.constraint.ConstraintLayout> | cs |
두번째 화면 xml 입니다.
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 33 34 35 36 37 38 | <?xml version="1.0" encoding="utf-8"?> <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.donghyun.toast.SecondActivity"> <Button android:id="@+id/back" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="이전화면" app:layout_constraintTop_toTopOf="parent" android:layout_marginTop="8dp" app:layout_constraintBottom_toBottomOf="parent" android:layout_marginBottom="8dp" android:layout_marginLeft="8dp" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toLeftOf="@+id/finish" android:layout_marginRight="8dp" app:layout_constraintHorizontal_bias="0.571" app:layout_constraintVertical_bias="0.498" /> <Button android:id="@+id/finish" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="종료" android:layout_marginRight="80dp" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" android:layout_marginTop="8dp" app:layout_constraintBottom_toBottomOf="parent" android:layout_marginBottom="8dp" app:layout_constraintVertical_bias="0.498" /> </android.support.constraint.ConstraintLayout> | 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 | package com.example.donghyun.toast; import android.content.Intent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.Gravity; import android.view.View; import android.widget.Button; import android.widget.Toast; public class MainActivity extends AppCompatActivity { Button button ; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); button = (Button)findViewById(R.id.button1); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Intent i = new Intent(getApplicationContext(),SecondActivity.class); startActivity(i); finish(); } }); } } | 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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | package com.example.donghyun.toast; import android.content.DialogInterface; import android.content.Intent; import android.support.v7.app.AlertDialog; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; public class SecondActivity extends AppCompatActivity implements View.OnClickListener { Button back , finish; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_second); back = (Button)findViewById(R.id.back); back.setOnClickListener(this); finish = (Button)findViewById(R.id.finish); finish.setOnClickListener(this); } @Override public void onClick(View view) { switch (view.getId()){ case R.id.back: Intent i = new Intent(this,MainActivity.class); startActivity(i); break; case R.id.finish: AlertDialog.Builder alert = new AlertDialog.Builder(this); alert.setTitle("종료"); alert.setMessage("종료 하시겠습니까 ? "); alert.setPositiveButton("네", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { finish(); } }); alert.setNegativeButton("아니오", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { dialogInterface.cancel(); } }); alert.show(); break; } } } | cs |
알림창의 타이틀은 setTitle() 메소드를 이용하고 내용은 setMessage() 메소드를 이용합니다. '네','아니오' 와 같은 버튼의 설정은 setPositiveButton() 메소드와 setNegativeButton() 메소드를 이용 합니다. 이 메소드는 OnClickListener를 설정 할 수 있습니다.
직접 실행하여 어떻게 동작하는지 보세요.
이상으로 알림창(AlertDialog)에 대해서 알아 보았습니다.
'프로그래밍 > 안드로이드' 카테고리의 다른 글
[안드로이드] 스피너(Spinner) 이용하기 (1) | 2017.05.16 |
---|---|
[안드로이드] 권한(Permission) (1) | 2017.05.13 |
[안드로이드] 토스트(Toast) 메시지 사용하기 (1) | 2017.05.10 |
[안드로이드] 인텐트(Intent) 이용하기 (3) - 암시적 인텐트(Implicit Intent) (2) | 2017.05.07 |
[안드로이드] 인텐트(Intent) 이용하기(2) - 명시적 인텐트(Explicit Intent) (1) | 2017.05.06 |