9주차
*토스트는 나타났다가 사라지는 기능
토스트와 대화상자의 공통점은 화면에 보여주는 것.
*메뉴(기능) :
-사용자가 여러 개 중 하나를 선택하도록 해서 사용자의 명령을 받아드리는 간편한 방식
-안드로에드에서의 메뉴는 옵션 메뉴와 컨테스트 메뉴 2가지로 구분
옵션메뉴 > 키패드 메뉴 버튼 또는 메뉴 아이콘을 눌렀을 때 화면에 나타남.
컨테스트(상황) 메뉴 > 롱클릭하면 화면에 나타남.
*옵션 메뉴를 사용하는 방법
-menu.xml 을 생성한 후 java에서 호출하여 처리하는 방법
-xml 생성 없이 java code로만 메뉴를 생성하여 처리하는 방법
-> 아무래도 menu.xml을 생성하고 처리하는 방법이 효율적
- XML을 이용한 옵션 메뉴 -> 메뉴 생성을 위해 3가지 설정
1.메뉴 폴더 생성 및 메뉴 xml파일 생성/편집 = 메뉴코딩
2.java 코딩 : onCreateOptionMenu() 메소드 오버라이딩 = 메뉴 파일 등록
3.java 코딩 : onOptionsltemSelected()메소르 오버라디 = 메뉴 선택 시 작동할 내용 코딩
*옵션 메뉴를 사용하는 방법
-메뉴XML 파일 형싱 -> [res] -[menu]폴더에 생성
- oncreateOptionsMenu()는 앱이 실행되면 자동으로 수행
- 인플레이터 : 정적인 XML 파일을 java 코드로 접근하여 실제 객체를 만들어 사용하는 것
XML을 만들어서 상황에 맞게 Menu를 만듬.
-onOptionsltemSelected() 는 메뉴를 선택했을 때의 동작 설정
해당하는 id를 설정하여 구분해 사용함.(되도록 오른쪽을 이용하여 사용함)
*java코드만 이용한 메뉴
-oncreateOptionMenu() 메소드 안의 코드 변경
- > menu.add()메소드를 이용하여 메뉴 항목 직접 추가
- > menu.addsubmenu()를 이용하여 서브메뉴 직접추가
-onOptionsltemSelected() 메소 안의 코드 변경
XML를 이용한 컨테스트 매뉴
- 위젯을 롱클릭했을 떄 화면 중앙에 나타나는 컨테스트 메뉴
- 컨테스트 메뉴를 나타낼 위젯을 registerForcontextMenu() 로 등록
1. 메뉴 폴더 생성 및 위재의 메뉴 XML파일 생성.-평짐 : 멘유코드
2.java코딩 : oncreate()안에 registerForContextMEnu()로 등록 = 메뉴를 사용할 위젯 등록
3.java코딩 : oncreateContexMenu : 메뉴 파일 등록
4.java 코딩 : onContextltemSelected()메소드 오버라이딩 (메뉴 선택 시 동작할 내용 코딩)
-oncreateContextMenu() 는 위젯별로 컨테스트 메뉴를 생성하도록 함
위젯에 따라서 컨텍스트 메뉴를 생성할 수 있음.
-onContextItemSelected()는 옵션 메뉴와 동일하게 구현
*토스트(개발중 디버깅 용도로 사용하기는 함 -> 토스트 보다는 logcat 이용바람)
-잠깐 화면에 나타났다가 자동으로 사라지는 메세지
Toast.makeText(Context context, String message, int duration).show();
Toast.LENGTH_short //2sec
Toast.LENGTH_LONG //3.5sec
-토스트 표시 위치 변경 -> setGravity(위치, x옵셋, y옵셋 ) 사용
Toast toast = new Toast(this);
toast.setGravity.CENTER,0,0);
*대화상자
-화면에 메시지를 나타낸 후 확인이나 취소 같은 사용자의 선택을 받아드리는 경우에 사용(UI 흐름이 멈춤)
-사용자에게 중요한 사항을 알려준 후, 사용자가 다시 어떤 선택을 하게 하는 것이 목적
*기본 대화상자
-알림 메시지만 출력하는 가장 기본적인 형태
*기본 대화상자
- 앞의 예제에서 '확인' 버튼을 추가하려고 동작 처리
- setPositiveButton("문자열", 리스너);
* 목록 대화상자
-대화상자에 리스트 형태의 목록 출력
-앞의 예제에서 onClick() 수정해서 작성
-항목을 여러 개 동시에 선택하려면 setMultiChoiceItem() 사용