AlertDialog : 사용자한테 간단한 안내를 하거나, 단순한 응답을 받을 때 사용한다.

1
2
3
4
5
6
7
AlertDialog alertDialog = 
new AlertDialog.Builder(MainActivity.this)
                        .setTitle("얼럿다이얼로그1")
                        .setMessage("알림1")
                        .setPositiveButton("확인1"null)
                        .create();
alertDialog.show();
cs


확인, 취소 버튼 만들어서 각 버튼이 눌릴 때 이벤트 처리

1
2
3
.setPositiveButton("확인"new ) // 오른쪽
.setNegativeButton("취소"null// 왼쪽 (부정 긍정 의미 x)
.setNeutralButton("중립"null)
cs


1
2
3
4
5
6
7
8
.setPositiveButton("확인"new DialogInterface.OnClickListener() {
                            
  @Override
  public void onClick(DialogInterface dialog, int which) {
  // TODO Auto-generated method stub
  Toast.makeText(MainActivity.this"확인!"0).show();
  }
})
cs



1
2
3
4
5
6
7
8
9
10
public void onClick(View v) {
  String[] pokemon = {"파이리""꼬부기""이상해씨"};
  AlertDialog alertDialog = new AlertDialog.Builder(MainActivity.this)
   .setTitle("얼럿다이얼로그3")
// .setMessage("check!") list사용시 메시지 사용 못함
 .setItems(pokemon, null)

cs


1
2
3
4
5
6
7
.setItems(pokemon, new DialogInterface.OnClickListener() {
                            
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, pokemon[which], 0).show();
}
})
cs

1
2
3
4
5
6
7
.setSingleChoiceItems(pokemon, 0new DialogInterface.OnClickListener() {
                            
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, pokemon[which], 0).show();
})
})
cs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
.setSingleChoiceItems(pokemon, 0new DialogInterface.OnClickListener() {
                            
                            @Override
                            public void onClick(DialogInterface dialog, int which) {
                                // TODO Auto-generated method stub
                                Toast.makeText(MainActivity.this, pokemon[which], 0).show();
                                index = which;
                            }
                        })
                        .setPositiveButton("확인"new DialogInterface.OnClickListener() {
                            
                            @Override
                            public void onClick(DialogInterface dialog, int which) {
                                // TODO Auto-generated method stub
                  ListView lw = ((AlertDialog)dialog).getListView();
Toast.makeText(MainActivity.this, pokemon[lw.getCheckedItemPosition()], 1).show();
//                             
Toast.makeText(MainActivity.this, pokemon[index], 0).show();
                            }
                        })
cs


onclick이벤트 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
26
27
28
29
30
31
32
33
34
        final boolean[] selected = new boolean[3]; //각 아이템이 체크된지 상태를 기억하기 위한 불리언 배열준비
        btn4.setOnClickListener(new View.OnClickListener() {
            
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                AlertDialog alertDialog = new AlertDialog.Builder(MainActivity.this)
                        .setTitle("얼럿다이얼로그4")
                        .setMultiChoiceItems(pokemon, new boolean[]{false,false,false}, 
                                new DialogInterface.OnMultiChoiceClickListener() {
                                                        //클릭이 됐을 때 클릭된 아이템인덱스
                            @Override
                            public void onClick(DialogInterface dialog, int which, boolean isChecked) {
                                // TODO Auto-generated method stub                //클릭된 아이템의 선택/안선택 여부
                                selected[which] = isChecked;
                                //상태기억하기위한 배열의
                            }
                        })
                        .setPositiveButton("확인"new DialogInterface.OnClickListener() {
                                //클릭된 인덱스의 상태를 반영
                            @Override
                            public void onClick(DialogInterface dialog, int which) {
                                // TODO Auto-generated method stub
                                for(int i = 0; i < pokemon.length; i++){
                                    if(selected[i])
                                        Toast.makeText(MainActivity.this, pokemon[i], 0).show();
                                    //확인버튼이 눌렸을 때 클릭된 상태로 기억된 녀석들 출력
                                }
                            }
                        })
                        .create();
                alertDialog.show();
            }
        });
cs


커스텀 다이얼 로그 : 다이얼로그의 UI를 xml로 짜고 직접 인플레이션

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
        btn5.setOnClickListener(new View.OnClickListener() {
            
            @Override
            public void onClick(View v) {
                // 버튼이 위로가 있는 거꾸로 생긴 놈을 출력
                //변종으로 생겨먹은 얼럿창들은 얼럿다이얼로그의 내부클래스 빌더를 통해서는 만들 수 없음
                //커스텀 다이얼 로그 : 다이얼로그의 UI를 xml로 짜고 직접 인플레이션
                View view = getLayoutInflater().inflate(R.layout.dialog_mydialog, null);
                Button okBtn = (Button) view.findViewById(R.id.mydialog_ok);
                okBtn.setOnClickListener(new View.OnClickListener() {
                    
                    @Override
                    public void onClick(View v) {
                        // TODO Auto-generated method stub
                        finish();
                    }
                });
                AlertDialog alertDialog = new AlertDialog.Builder(MainActivity.this)
                        .setView(view)
                        .create();
Title / Button 은 사용가능
                alertDialog.show();
            }
        });
cs


' IOT 기반 응용 SW과정 > Android, Arduino' 카테고리의 다른 글

Day95  (0) 2016.08.02
Day94 안드로이드 listview  (0) 2016.08.02
Day92  (0) 2016.07.28
Day91  (0) 2016.07.27
Day90  (0) 2016.07.26

+ Recent posts