위의 예와 같이 DialogFragment 클래스에서 onCancel()를 구현하여 취소 이벤트에 응답할 수 있습니다. 집합의 두 번째 매개 변수인SingleChoiceItems()는 어떤 항목을 검사할지 결정하는 데 사용됩니다. onClick()의 마지막 매개 변수는 선택된 항목의 인덱스를 제공합니다(예: [여성 항목 선택)]은 선택된 인덱스의 값이 1이 됩니다. 팁: 사용자 지정 대화 상자를 원하는 경우 대신 대화 상자 API를 사용하는 대신 활동을 대화 상자로 표시할 수 있습니다. 활동을 만들고 매니페스트 요소에서 테마.Holo.Dialog로 설정하기만 하면 확인 대화 상자에서 사용자가 옵션을 커밋하기 전에 자신의 선택을 명시적으로 확인해야 합니다. 예를 들어 사용자는 여러 벨소리를 들을 수 있지만 „OK”를 터치하면 최종 선택만 할 수 있습니다. 대화 상자의 스타일을 쉽게 정할 수 있습니다. styles.xml 리소스에서 사용자 지정 스타일을 만듭니다. 이 스타일 부모가 Theme.AppCompat.Light.Dialog.Alert이라는 것을 확인하십시오. 즉, 이 스타일은 부모로부터 일부 스타일 특성을 상속합니다. 이것은 코드 의 일부 줄로 경고 대화 상자를 만드는 것과 비슷합니다. ImageButton 위젯에서 사용자 지정 VectorDrawable(@drawable/ic_close)을 참조하는 특성 앱:srcCompat를 볼 수 있습니다. 이 사용자 지정 VectorDrawable탭하면 전체 화면 대화 상자를 닫는 X 버튼이 만들어집니다.

여기서는 onCreateView() (일반 조각과 마찬가지로)를 재정의합니다. 이 메서드 내에서는 대화 상자에 대한 사용자 지정 보기로 사용할 레이아웃(R.layout.full_screen_dialog)을 부풀리고 반환하기만 하면 됩니다. 클릭하면 대화 상자를 해제하는 이미지 단추(R.id.button_close)에 OnClickListener를 설정합니다. 이전 장에서, 우리는 DatePicker디아로그와 TimePickerDialog를 커버, 지금 우리는 예제와 함께 우리의 안드로이드 응용 프로그램에서 AlertDialog를 사용하는 방법을 볼 수 있습니다. 대화 상자 작성기 및 설정 한 후 builder 클래스의 create() 메서드를 호출 하 여 경고 대화 상자를 만듭니다. 해당 구문은 build.gradle 파일(앱 모듈)에 최신 appcompat 아티팩트를 포함하고 있는지 확인하는 것입니다. 지원되는 최소 API 수준은 Android 4.0(API 수준 14)입니다. 앞의 코드에서는 하단 시트 레이아웃 R.layout.bottom_sheet_대화 상자를 팽창시되었습니다.

아래_sheet_dialog.xml에서 취소 및 확인 단추에 대한 리스너를 설정합니다. 취소 단추를 클릭하면 대화 상자가 닫히기만 하면 됩니다. 왜 화면의 전체 너비에서 기본 활동의 ImageView 컨트롤에 이미지를 표시 하는 안 드 로이드 애플 리 케이 션을 만드는 방법에 대 한 내 블로그를 살펴. 날짜 선택 기 대화 상자를 표시 하려면 DatePickerDialog의 인스턴스를 만듭니다. 다음은 이 형식의 인스턴스를 만들 때 매개 변수 정의에 대한 설명입니다. 패키지 com.tutlane.alertdialogexample; 가져 오기 android.content.대화인터페이스; 가져 오기 android.support.v7.app.AlertDialog; 가져 오기 안드로이드.support.v7.app.App.AppCompatActivity; 가져 오기 android.os.Bundle; 가져오기 android.view.View; 가져 오기 android.widget.Button; 가져 오기 android.widget.Toast; 가져오기 자바.util.ArrayList; public 클래스 MainActivity 확장 AppCompatActivity {최종 CharSequence[] 색상 = { {„분홍색”, „빨간색”, „노란색”, „파란색” }; 배열 목록 목록 = 새 ArrayList(); 부울 icount[] = 새 부울[colors.length]; 문자열 MSG =””; @Override 보호 된 void onCreate (번들 저장 인스턴스 상태) { super.onCreate (저장된 인스턴스 상태); setContentView (R.layout.activity_main); 버튼 btn = (버튼)findViewById (R.id.getBtn); btn.setOnClickListener (새로운 View.OnClickListener(새 View.OnClickListener)) { @Override 공개 무효 onClick (보기 v) { AlertDialog.Builder = 새로운 AlertDialog.Builder.Builder (MainActivity.this); builder.setTitle („색상 선택”) .setMultiChoiceItems (색상, 아이 카운트, 새로운 DialogInterface.OnMultiChoiceClickListener() { @Override 공개 무효 onClick (DialogInterface arg0, int arg1, 부울 arg2) { 경우 (arg2) { // 사용자가 항목을 선택하면 선택한 항목에 추가한 다음 slist.add(arg1); } (slist.contains(arg1)) { // 이미 선택된 다음 slist.remove(Integer.valueOf(arg1))를 제거합니다. } } }} .setCancelable(false) .setPositiveButton(„예”, 새 DialogInterface.OnClickListener() { @Override 공개 무효 onClick (대화인터페이스 대화 상자, int) { msg = „”; (int i = 0; i < slist.size (); i ++) { msg = msg + "n" + (i + 1) + " : " + color[slist.get(i)]; } Toast.makeText(getApplicationContext(), "총 " + slist.size() + "선택된 항목.n" + msg, Toast.LENGTH_SHORT.show(); }} setnegativeButton ("아니오", 새로운 대화문.OnClickListener() { @Override 공용 보이드 onClick (대화 인터페이스 대화 상자, int) { Toast.makeText (MainActivity.this,"선택 된 옵션 없음", Toast.LENGTH_SHORT);} ); 대화 상자 만들기 AlertDialog 대화 상자 = builder.create(); 대화 상자.쇼(); } }); } } 대화 상자조각에서 레이아웃을 팽창하려면 첫 번째 매개 변수가 레이아웃 리소스 ID와 두 번째 매개 변수인 getLayoutInflater() 및 호출 inflate()를 사용하여 LayoutInflater를 가져옵니다.