밍이라구 2023. 12. 4. 19:07

*토스트는 나타났다가 사라지는 기능

 

토스트와 대화상자의 공통점은 화면에 보여주는 것.

 

*메뉴(기능) : 

-사용자가 여러 개 중 하나를 선택하도록 해서 사용자의 명령을 받아드리는 간편한 방식

-안드로에드에서의 메뉴는 옵션 메뉴컨테스트 메뉴 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() 사용