감성 자동제어
[안드로이드 스튜디오]대화상자(dialog)사용방법
안녕하세요! 오늘은 버튼을 클릭했을 때 AlertDialog를 이용한 대화상자(dialog)를 사용하는 방법에 대해서 알아보보록 하겠습니다!
Activity_main.xml(layout)
버튼을 추가하여 레이아웃을 구성해주도록 하겠습니다!
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
android:orientation="vertical"
tools:context=".MainActivity">
<Button
android:id="@+id/btn_dialog"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="대화상자 생성"
android:textSize="30dp" />
</LinearLayout>
|
cs |
MainActivity(Class)
총 5단계를 통해 대화상자를 만들어 보는 방법에 대해 알아보겠습니다.
[1] 기본 대화상자 생성
[2] 버튼이 2개인 대화상자 생성 (버튼 클릭시 토스트 메시지 출력)
[3] 기본 목록 생성 (목록 클릭시 해당 목록 이름 토스트 메시지 출력)
[4] 라디오 버튼 목록 생성 (목록 클릭시 해당 목록 이름 토스트 메시지 출력)
[5] 체크박스 버튼 목록 생성 (목록 클릭시 해당 목록 이름 토스트 메시지 출력)
1. 기본 대화상자 생성
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
|
package com.example.dialog;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class MainActivity extends AppCompatActivity {
Button mbtn_dialog;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mbtn_dialog = findViewById(R.id.btn_dialog);
mbtn_dialog.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//대화상자 생성//
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
builder.setTitle("제목을 입력합니다"); //setTitle -> 제목설정
builder.setMessage("내용을 입력합니다"); //setMessage -> 내용입력
builder.setIcon(R.mipmap.ic_launcher); //setIcon -> 아이콘 설정
builder.show(); //대화상자(dialog)화면 출력
}
});
}
}
|
cs |
2. 버튼이 2개인 대화상자 생성
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
|
public class MainActivity extends AppCompatActivity {
Button mbtn_dialog;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mbtn_dialog = findViewById(R.id.btn_dialog);
mbtn_dialog.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//대화상자 생성//
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
builder.setTitle("제목입니다"); //setTitle -> 제목설정
builder.setMessage("내용입니다."); //setMessage -> 내용입력
builder.setIcon(R.mipmap.ic_launcher); //setIcon -> 아이콘 설정
// setPositiveButton -> "OK"버튼 //
builder.setPositiveButton("확인", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
Toast.makeText(MainActivity.this, "확인 버튼을 눌렀습니다.",
Toast.LENGTH_SHORT).show();
}
});
// setNegativeButton -> "Cancel" 버튼 //
builder.setNegativeButton("취소", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
Toast.makeText(MainActivity.this, "취소 버튼을 눌렀습니다.",
Toast.LENGTH_SHORT).show();
}
});
builder.show(); //대화상자(dialog)화면 출력
}
});
}
}
|
cs |
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
35
36
37
38
39
40
41
42
43
|
public class MainActivity extends AppCompatActivity {
Button mbtn_dialog;
String[] colorArray = new String[] {"빨강", "주황", "노랑", "초록"}; //목록 변수 지정
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mbtn_dialog = findViewById(R.id.btn_dialog);
mbtn_dialog.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//대화상자 생성//
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
builder.setTitle("좋아하는 색은?"); //setTitle -> 제목설정
builder.setIcon(R.mipmap.ic_launcher); //setIcon -> 아이콘 설정
// setPositiveButton -> "OK"버튼 //
builder.setPositiveButton("확인", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
Toast.makeText(MainActivity.this, "확인 버튼을 눌렀습니다.",
Toast.LENGTH_SHORT).show();
}
});
// setItems -> 목록출력 //
builder.setItems(colorArray, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
Toast.makeText(MainActivity.this,colorArray[i],
Toast.LENGTH_SHORT).show();
}
});
builder.show(); //대화상자(dialog)화면 출력
});
}
}
|
cs |
4. 라디오 버튼 목록 생성
"colorArray" 배열을 추가했습니다!
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
|
public class MainActivity extends AppCompatActivity {
Button mbtn_dialog;
String[] colorArray = new String[] {"빨강", "주황", "노랑", "초록"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mbtn_dialog = findViewById(R.id.btn_dialog);
mbtn_dialog.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// 대화상자 생성 //
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
builder.setTitle("좋아하는 색은?"); //setTitle -> 제목설정
builder.setIcon(R.mipmap.ic_launcher); //setIcon -> 아이콘 설정
// setPositiveButton -> "OK"버튼 //
builder.setPositiveButton("확인", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
Toast.makeText(MainActivity.this, "확인 버튼을 눌렀습니다.",
Toast.LENGTH_SHORT).show();
}
});
// setSingleChoiceItems -> 라디오버튼 목록 출력 //
builder.setSingleChoiceItems(colorArray, 0, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
Toast.makeText(MainActivity.this, colorArray[i],
Toast.LENGTH_SHORT).show(); }
});
builder.show(); //대화상자(dialog)화면 출력
}
});
}
}
|
cs |
5. 체크박스 버튼목록 생성
1) "booleansArray" 배열을 추가했습니다!
2) 체크박스에 "체크" 표시가 될경우에만 토스트 메시지를 띄우기 위해 조건문을 추가했습니다.
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
|
public class MainActivity extends AppCompatActivity {
Button mbtn_dialog;
String[] colorArray = new String[]{"빨강", "주황", "노랑", "초록"};
boolean[] booleansArray = new boolean[]{true, false, false, true};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mbtn_dialog = findViewById(R.id.btn_dialog);
mbtn_dialog.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//대화상자 생성//
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
builder.setTitle("좋아하는 색은?"); //setTitle -> 제목설정
builder.setIcon(R.mipmap.ic_launcher); //setIcon -> 아이콘 설정
// setPositiveButton -> "OK"버튼 //
builder.setPositiveButton("확인", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
Toast.makeText(MainActivity.this, "확인 버튼을 눌렀습니다.",
Toast.LENGTH_SHORT).show();
}
});
// setSingleChoiceItems -> 체크박스 목록 출력 //
builder.setMultiChoiceItems(colorArray, booleansArray, new DialogInterface.OnMultiChoiceClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i, boolean b) {
if (booleansArray[i] == true) {
Toast.makeText(MainActivity.this, colorArray[i],
Toast.LENGTH_SHORT).show();
}
}
});
builder.show(); //대화상자(dialog)화면 출력
}
});
}
}
|
cs |
마무리
1) setTitle -> 제목설정
2) setMessage -> 내용입력
3) setIcon - > 아이콘 설정
4) setPositiveButton -> "ok" 버튼
5) setNegativeButton -> "cancel" 버튼
6) setItem -> 목록 출력
7) setSingleChoiceItems -> 라디오버튼 목록
8) setMultiChoiceItems-> 체크박스 목록
이상으로 대화상자(dialog)를 사용하는 방법에 대해서 알아보았습니다. 감사합니다!!
'안드로이드 스튜디오' 카테고리의 다른 글
[안드로이드 스튜디오] 기초 완전 간단한 계산기 앱 만들기! (0) | 2020.11.30 |
---|---|
[안드로이드 스튜디오] XML을 이용한 옵션메뉴 만들기! (0) | 2020.11.25 |
[안드로이드 스튜디오] 버튼 클릭시 이미지 변경!! (4) | 2020.11.20 |
[안드로이드 스튜디오] 버튼클릭시 홈페이지 열기!(Intent) (0) | 2020.11.18 |
[안드로이드 스튜디오] 버튼클릭시 토스트 메시지 띄우기 (0) | 2020.11.17 |