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) |
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, 0, 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 8 9 10 11 12 13 14 15 16 17 18 19 | .setSingleChoiceItems(pokemon, 0, new 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 |