관리 메뉴

막내의 막무가내 프로그래밍 & 일상

[안드로이드] 선택 다이얼로그 본문

안드로이드/자바 & Previous

[안드로이드] 선택 다이얼로그

막무가내막내 2019. 6. 24. 20:01
728x90

 

public void showDialog(String title, String content, String positive, String negative)
    {
        AlertDialog.Builder dialog = new AlertDialog.Builder(this);
        dialog.setTitle(title);
        dialog.setMessage(content);
        dialog.setPositiveButton(positive,
                new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int which) {
                        //positive 버튼이ㅏ 눌렸을 때 수행될 코드를 작성
                    }
                });
        dialog.setNegativeButton(negative,
                new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int which) {
                        //negative 버튼이 눌렸을 때 수행될 코드를 작성
                    }
                });
        dialog.show();
    }
//선택 다이얼로그에서 사용할 목록의 배열입니다.
final CharSequence[] items = {"카메라", "갤러리", "취소"};

/* Dialog를 사용하려면 먼저 Dialog를 만들어야 합니다.
new AlertDialog.Builder(context);를 통해 Dialog를 생성하며 context는
context : 어떤 Activity에서 이 Dialog를 사용하는지에 대한 정보 값입니다.
MainActivity.this는 MainActivity에서 Dialog를 만들어서 사용하겠다고 지정해주는 코드입니다.*/

// MainActivity에서 사용할 선택목록 다이얼로그 객체를 생성하여 selectDialog라는 변수에 대입하는 코드입니다
AlertDialog.Builder selectDialog = new AlertDialog.Builder(MainActivity.this);
// 생성한 Dialog에 제목으로 사진선택 이라는 문자열을 지정했습니다.
selectDialog.setTitle("사진선택");
// Dialog가 아닌 바깥을 터치했을 때 Dialog가 사라지지는 기능을 활성화 시키지 않겠다는 코드입니다.
selectDialog.setCancelable(false);
// items : 다이얼로그에 추가할 목록의 배열입니다.
// OnclickLisnter : 추가한 목록을 선택했을때 동작할 클릭이벤트를 등록하는 코드입니다.
// 생성한 Dialog에 목록과 클릭이벤트를 수신할 리스너를 연결하여줍니다.
selectDialog.setItems(items, new DialogInterface.OnClickListener() {
    //dialog : 사용자가 보고있는 dialog
    // which : 사용자가 클릭한 목록의 index값
    @Override
    public void onClick(DialogInterface dialog, int index) {
        switch (index) {
            //index에 따라 실행되어야 하는 기능을 이곳에서 작성합니다.
            case 0:
                //실행문 작성
                break;
            case 1:
                //실행문 작성
                break;
            case 2:
                //실행문 작성
                break;
        }
    }
});

//사용자에게 실제로 Dialog를 볼수 있게 띄워주는 메서드입니다. 이 부분을 작성하지 않으면 Dialog는 사용자에게 보여지지 않습니다.
selectDialog.show();

 

 

 

 

2방법

//사진찍기 or 앨범에서 가져오기 선택 다이얼로그
    private void photoDialogRadio() {
        final CharSequence[] PhotoModels = {"갤러리에서 가져오기", "카메라로 촬영 후 가져오기", "기본사진으로 하기"};
        AlertDialog.Builder alt_bld = new AlertDialog.Builder(this);
        //alt_bld.setIcon(R.drawable.icon);
        alt_bld.setTitle("프로필사진 설정");
        alt_bld.setSingleChoiceItems(PhotoModels, -1, new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int item) {
                // Toast.makeText(ProfileActivity.this, PhotoModels[item] + "가 선택되었습니다.", Toast.LENGTH_SHORT).show();
                if (item == 0) { //갤러리
                    Intent intent = new Intent();
                    intent.setType("image/*");
                    intent.setAction(Intent.ACTION_GET_CONTENT);
                    startActivityForResult(intent, PICK_IMAGE);
                } else if (item == 1) { //카메라찍은 사진가져오기
                    takePictureFromCameraIntent();
                } else { //기본화면으로하기
                    mPhotoImageVIew.setImageResource(R.drawable.ic_add_a_photo_black_24dp);
                    img = null;
                }
            }
        });
        AlertDialog alert = alt_bld.create();
        alert.show();
    }
728x90
Comments