728x90
대화상자 (Dialog)
- 사용자에게 메시지를 출력하고 사용자로부터 입력을 받아들이는 보편적인 사용자 인터페이스
- 사용자에게 중요한 사항을 알려준 후, 어떤 선택을 하게 하는 것이 목적
- 대화상자 생성 : AlertDialog.BUilder 클래스로 생성
- 용도에 따른 생성
- setTitle() : 제목 설정
- setMessage() : 내용 입력
- setPostiveButton() : OK 버튼
- setNegativeButton() : Cancel 버튼
- setSingleChoiceItems() : 라디오버튼 목록 출력
- setMultiChoiceItems() : 체크박스 목록 출력
- 대화상자 화면 출력
- show()
실습
- 대화상자 Java 코드 (버튼없음)
@Override
protected void onCreate(Bundle savedInstanceState) {
...
// 버튼 생성
Button btn = (Button)findViewById(R.id.button);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//AlertDialog.Builder 사용
AlertDialog.Builder mydlg = new AlertDialog.Builder(MainActivity.this);
mydlg.setTitle("제목입니다.");
mydlg.setMessage("이 곳이 내용입니다.");
}
});
- 대화상자 Java 코드
// 변수선언
final String[] hobby = new String[] {"낚시", "등산", "수영"};
TextView tv;
@Override
protected void onCreate(Bundle savedInstanceState) {
...
// 위젯 연결
tv = (TextView) findViewById(R.id.textView2);
Button btn = (Button)findViewById(R.id.button);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
AlertDialog.Builder mydlg = new AlertDialog.Builder(MainActivity.this);
mydlg.setTitle("제목입니다.");
mydlg.setItems(hobby, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
tv.setText(" 당신이 좋아하는 취미는 : " + hobby[i]);
}
}):
//postive 버튼
mydlg.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override // OK를 눌렀을 때 작동할 콜백함수
public void onClick(DialogInterface dialogInterface, int i) {
Toast.makeText(getApplicationContext(), "OK 버튼 클릭됨", Toast.LENGTH_SHORT).show();
}
});
}
});
- 라디오 버튼 , 체크박스
// 라디오 버튼 : 여러 개 중 하나 클릭했을 때 선택된 것만 클릭되고 나머지는 해제
mydlg.setSingleChoiceltems(hobby, 0, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
tv.setText(" 당신이 좋아하는 취미는 : " + hobby[i]);
}
});
// 체크 박스 : 여러 개 선택 가능
mydlg.setMultiChoiceItems(hobby, checkArray, new DialogInterface.OnMultiChoiceClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i, boolean ischecked) {
...
}
});
728x90
'Android Programming' 카테고리의 다른 글
[Mobile Programming] Transition API 애니메이션 (1) | 2021.10.22 |
---|---|
[Mobile Programming] Android에서의 그래픽 (0) | 2021.10.21 |
[Mobile Programming] 메뉴 (Menu) (0) | 2021.10.19 |
[Mobile Programming] 터치 이벤트 (0) | 2021.10.18 |
[Mobile Programming] 이벤트 처리 실습 (0) | 2021.10.17 |