티스토리 뷰

AlertDialog.Builder 을 이용한 항목 선택창 만들기



버튼을 누르면 Alert 창이 뜨고, 그 창에서 항목을 선택하는 구조


2가지 Choice를 위해 2가지 버튼 생성


AlertDialog를 사용하기 위해

import android.support.v7.app.AlertDialog;

를 import 한다.





MultiChoiceItems


MultiChoice는 여러개의 항목을 선택할 수 있는 선택창이다.


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
 btnDialog.setOnClickListener(new View.OnClickListener(){
            @Override
            public void onClick(View v) {
 
                final String[] items = new String[]{"IT/Computer""Game""Fashion""VR""Kidult""Sports""Music""Movie"};
                final boolean[] checkedList = new boolean[]{ falsefalsefalsefalsefalsefalsefalsefalse };
                AlertDialog.Builder dialog = new AlertDialog.Builder(MainActivity.this);
                dialog.setTitle("관심분야를 선택하세요.")
                        .setMultiChoiceItems(items,
                                checkedList,
                                new DialogInterface.OnMultiChoiceClickListener() {
                                    @Override
                                    public void onClick(DialogInterface dialog, int which, boolean isChecked) {
                                        if( isChecked ){
                                            Toast.makeText(MainActivity.this, items[which], Toast.LENGTH_SHORT).show();
                                            selectedItems.add(items[which]);
                                        }
                                        else {
                                            selectedItems.remove(items[which]);
                                        }
                                    }
                                })
                        .setPositiveButton("확인"new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialog, int which) {
                                if( selectedItems.size() == 0) {
                                    Toast.makeText(MainActivity.this"선택된 관심분야가 없습니다.", Toast.LENGTH_SHORT).show();
                                }
                                else {
                                    String items = "";
                                    for (String selectedItem : selectedItems) {
                                        items += (selectedItem + ", ");
                                    }
 
                                    selectedItems.clear();
 
                                    items = items.substring(0, items.length()-2);
                                    Toast.makeText(MainActivity.this, items, Toast.LENGTH_SHORT).show();
                                }
                            }
                        }).create().show();
            }
        });
cs



선택할 때 마다 선택한 항목을 Toast를 띄우게 하고, 확인을 누르면 선택한 항목들을 Toast로 출력한다.



checkedList로 false를 배열에 담아 놓으면 List가 체크 해제된 상태로 나타나게 된다. True를 주면 체크된 상태가 된다.











SingleChoiceItems


singleChoice는 하나만 선택 가능한 선택창이다.


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
btnDialog2.setOnClickListener(new View.OnClickListener(){
            @Override
            public void onClick(View v) {
 
                final String[] items = new String[]{"IT/Computer""Game""Fashion""VR""Kidult""Sports""Music""Movie"};
                final int[] selectedIndex = {0};
 
                AlertDialog.Builder dialog = new AlertDialog.Builder(MainActivity.this);
                dialog.setTitle("관심분야를 선택하세요.")
                        .setSingleChoiceItems(items,
                                0,
                                new DialogInterface.OnClickListener() {
                                    @Override
                                    public void onClick(DialogInterface dialog, int which) {
                                        selectedIndex[0= which;
                                    }
                                })
                        .setPositiveButton("확인"new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialog, int which) {
                                Toast.makeText(MainActivity.this, items[selectedIndex[0]], Toast.LENGTH_SHORT).show();
                            }
                        }).create().show();
            }
        });
cs









'Android' 카테고리의 다른 글

[Android] ListView (리스트 뷰)  (0) 2016.07.29
[Android] 웹에 요청하기  (0) 2016.07.26
[Android] 권한 획득  (0) 2016.07.25
[Android] AlertDialog 를 이용한 알림창  (0) 2016.07.21
[Android] onBackPressed 뒤로가기 버튼 처리  (0) 2016.07.21
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/05   »
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
글 보관함