안드로이드에서 대화상자는 많이 이용된다. 오늘은 대화상자를 끝내보도록 한다.
Dialog
사용자가 액티비티를 만들어서 이를 대화상자 형식으로 띄워준다.
자바 클래스 생성 후 DialogFragment 를 extends 해준다.
그리고 @override 메소드로 onCreateView 메소드를 가져온후 코딩한다.
자동생성되는 리턴값을 View rootView = inflater.inflate(R.layout.DialogExam, container, false); 로 해준다.!!
getDialog().setTitle("DialogFragment 연습예제"); // 대화상자 제목 설정 메소드
AlertDialog
xml로 대화상자 화면을 구성하는 것이 아니라 빌더 코드 형식으로 만들어진다. 따라서 xml 파일은 필요없고
자바클라스 하나만 있으면 된다~! 여기서 Dialog 와의 다른점은
Dialog 에서는 xml을 띄워주는형식이기 떄문에 onCreateView 메소드를 사용하지만
AlertDialog는 Dialog 그 자체이기 떄문에 Dialog onCreateDialog 메소드를 가져온다..!!
public class alertDialog extends DialogFragment {
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
return new AlertDialog.Builder(getActivity())
.setIcon(R.drawable.ic_launcher)
.setTitle("Alert 다이얼로그 예제")
.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
})
.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
}).create();
}
예제 소스이다.!! return 에 builder가 들어가고 파라미터로 액티비티. 가장중요한게 .set 시리즈들!! 마지막마무리로 .create();
공통사항 // 메인엑티비티에서 dialog 호출할때 FragmentManager 라는 것이 필요하다.
onCreate 메소드 시작 전 FragmentManager fm = getFragmentManager(); 을 선언해주자.
메인 java에서 Dialog, AlertDialog 불러오는건 동일형식!!

최근 덧글