- Today
- Total
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 재능이의 돈버는 일기
- StresslessLife
- K_JIN2SM
- 소소한 일상
- My Life Style & Memory a Box
- Blog's generation
- 공감 스토리
- 취객의 프로그래밍 연구실
- Love Me
- Dream Archive
- 세상에 발자취를 남기다 by kongmingu
- hanglesoul
- 카마의 IT 초행길
- 느리게.
- 미친듯이 즐겨보자..
- Joo studio
- Gonna be insane
- 악 다 날아갔어!! 갇대밋! 왓더...
- xopowo05
- 맑은공기희망운동
- 엔지니어 독립운동
- 혁준 블로그
- Simple in Complex with Simple
- 무의식이 의식을 지배한다
드럼치는 프로그래머
[안드로이드] XML로 메뉴만들기 - 메뉴항목을 보이고 안보이게 하기 본문
안녕하세요?
프쟁이 입니다.
메뉴항목을 처음에 안보이게 했다가, 프로그램을 사용하면서,
특정 조건이나, 조작을 했을때 다시 보이게 했다가, 다시 숨기는 등의
처리를 하는 경우가 있을 수 있습니다.
먼저 /res/menu/menuTemplate.xml 파일을 만드시고, 아래와 같이 입력합니다.
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/visible_item"
android:title="Visible"
android:alphabeticShortcut="a" />
<item android:id="@+id/hidden_item"
android:title="Hidden"
android:visible="false"
android:alphabeticShortcut="b" />
<group android:id="@+id/hidden_group"
android:visible="false">
<item android:id="@+id/hidden_by_group"
android:title="Hidden by group"
android:alphabeticShortcut="c" />
</group>
</menu>
먼저 menu 루트태그안에 item 태그가 세개가 있지만,
두번째 item 태그의 속성이 android:visible="false"로 되어있고,
세번째 item태그를 감싸는 group태그의 속성이
android:visible="false" 로 되어있어서, 첫번째 item 태그의
메뉴항목만 메뉴를 표시했을때 보이게 됩니다.
이제 액티비티 자바파일을 만드시고, 다음과 같이 입력합니다.
public class 액티비티클래스명 extends Activity {
/*
메뉴를 생성할때, 생성한 메뉴를 저장했다가,
메뉴항목을 선택했을때 호출되는 메소드에서,
메뉴에서 가져와야할 정보들을 이 변수에서
가져와서 처리를 하게됩니다.
*/
Menu mMenu;
/*
스마트폰 하단의 메뉴버튼을 눌렀을때 호출되는 함수입니다.
반환값을 false 로 하시면, 스마트폰 하단의 메뉴버튼을 눌렀을때,
메뉴가 안나오게 됩니다. true 를 리턴하셔야 메뉴가 나옵니다.
*/
@Override
public boolean onCreateOptionsMenu(Menu menu) {
mMenu = menu;
MenuInflater inflater = getMenuInflater();
//위에서 만들었던 xml 파일의 리소스아이디값을 넘겨줍니다.
inflater.inflate(R.menu.menuTemplate, menu);
return true;
}
/*
메뉴항목을 선택했을때, 호출되는 함수입니다.
*/
@Override
public boolean onOptionsItemSelected(MenuItem item) {
//각 체크박스 메뉴항목별로 선택했을때 처리..
switch (item.getItemId()) {
case R.id.visible_item: // 메뉴 xml 파일에서 정의한 id속성값 입니다.
//메뉴항목선택시 처리내용...
/*
메뉴객체의 findItem 메소드에 메뉴항목의 리소스아이디값을 넘겨서,
메뉴항목객체를 구하고(MenuItem), 그 메뉴항목의 isVisible() 메소드로
현재 보이는지 안보이는지 true/false 값을 가져와서,
그룹안의 모든 item 메뉴항목들을 보이고, 안보이게 해주는 메뉴객체의
setGroupVisible(..) 메소드를 호출하여, 해당 그룹안의 모든 메뉴항목들을
보이고 안보이게 컨트롤 할 수 있습니다.
*/
final boolean is_visible = !mMenu.findItem(R.id.hidden_item).isVisible();
mMenu.setGroupVisible(R.id.hidden_group, is_visible);
break;
case R.id.hidden_item: // 메뉴 xml 파일에서 정의한 id속성값 입니다.
//메뉴항목선택시 처리내용...
break;
case R.id.hidden_by_group: // 메뉴 xml 파일에서 정의한 id속성값 입니다.
//메뉴항목선택시 처리내용...
break;
}
return true;
}
}
그럼 모두 즐프하세요. ^^
[출처]
[출처] XML로 메뉴만들기 - 메뉴항목을 보이고 안보이게 하기|작성자 프쟁이
'★─Programing > ☆─Android' 카테고리의 다른 글
[안드로이드] 안드로이드 핵심, 액티비티(Activity) (0) | 2011.11.03 |
---|---|
[안드로이드] 안드로이드 프로젝트 폴더와 파일 설명 (0) | 2011.07.22 |
[안드로이드] WindowManager 객체를 이용하여 디바이스 화면의 폭과 높이 얻기 (0) | 2011.06.15 |
[안드로이드] 상단 타이틀바 없애기 (Source첨부) (0) | 2011.06.15 |
[안드로이드] 제13강좌 - Activity 추가하기, Intent 자료교환 (통신) (0) | 2011.06.15 |