Alert 대화 알림상자
설명: 대화알림상자는 흔히 봐왔던 작은 경고창(예, 아니오)를 의미합니다.
이번에는 대화알림상자에서
1. 만드는법
2. 제목, 아이콘 그리고 메세지 내용의 설정
3. 예, 아니오 버튼의 추가와 설정
에 대해서 설명하겠습니다.
직관성을 위해서 코드에 주석을 달아 한번에 설명합니다.
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
|
//이 함수는 MainActiyity.java 클래스에 포함된 함수입니다.
//어디에 쓰이는지 알고싶다면 아래의 예시 코드를 참조하시기바랍니다.
public void showMessage(){
final AlertDialog.Builder builder=new AlertDialog.Builder(this);
//우선 AlertDialog.Builder를 통해서 알림상자를 만드는 객채를 설정합니다
builder.setTitle("안내");
//제목을 설정합니다.
builder.setMessage("종료하시겠습니까");
//내용을 설정합니다.
builder.setIcon(android.R.drawable.ic_dialog_alert);
//제목에 추가할 아이콘을 추가합니다. 여기서는 기본적으로 제공되는 아이콘을 사용했습니다.
//이제 부정 버튼을 설정해봅시다.
builder.setNegativeButton("아니오", new DialogInterface.OnClickListener() {
//함수의 첫인자는 버튼의 메세지, 두번째는 리스너입니다.
//여기서 리스너는 DialogInterface 클래스의 것을 사용합니다.
@Override
public void onClick(DialogInterface dialog, int which) {
Snackbar.make(textView,"아니오 버튼이 눌렸습니다.",Snackbar.LENGTH_LONG).show();
//아니오 버튼이 눌리면 스낵바를 출력합니다.
}
});
//마찬가지로 긍정 버튼을 설정합니다.
builder.setPositiveButton("예", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Snackbar.make(button,"예 버튼이 눌렸습니다.",Snackbar.LENGTH_LONG).show();
}
});
//빌더에서 알림dialog를 새로 생성해줍니다. 빌더는 빌더일뿐 결과 객체가 아닙니다.
AlertDialog dialog=builder.create();
//보여주도록합니다.
dialog.show();
}
| cs |
아래는 이를 활용한 예시입니다.
Main_Activity.java
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
|
package com.jasonlee.ed_with_android_studio;
import android.content.DialogInterface;
import android.os.Bundle;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
TextView textView;
Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button=(Button)findViewById(R.id.button);
textView=(TextView)findViewById(R.id.textView2);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showMessage();
}
});
}
public void showMessage(){
final AlertDialog.Builder builder=new AlertDialog.Builder(this);
builder.setTitle("안내");
builder.setMessage("종료하시겠습니까");
builder.setIcon(android.R.drawable.ic_dialog_alert);
builder.setNegativeButton("아니오", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Snackbar.make(textView,"아니오 버튼이 눌렸습니다.",Snackbar.LENGTH_LONG).show();
}
});
builder.setPositiveButton("예", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Snackbar.make(button,"예 버튼이 눌렸습니다.",Snackbar.LENGTH_LONG).show();
}
});
AlertDialog dialog=builder.create();
dialog.show();
}
}
| cs |
activity_main.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
|
<?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">
<Button
android:id="@+id/button"
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" />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="116dp"
android:text="알림대화상자"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</android.support.constraint.ConstraintLayout>
| cs |
'Android' 카테고리의 다른 글
[Android] Context란? - 다른 액티비티의 변수,함수 호출 (0) | 2021.01.03 |
---|---|
Android - Button & Toast Message (0) | 2020.01.18 |
LinearLayout 정의 및 사용법 (0) | 2020.01.18 |
Android- 알림(Toast 커스터마이징 & Snackbar) (0) | 2020.01.18 |
안드로이드 - 1. Adapter와 AdapterView (Ver.0.1) (0) | 2019.08.27 |