옵션 메뉴를 구현해보자.
위 옵션 메뉴 구성은 하기와 같다.
옵션 메뉴 4개 가 존재하며, 각 옵션 메뉴를 선택시 화면에 선택된 메뉴의 텍스트가 표기된다.
1. 옵션 메뉴 화면을 구성하자.
res 폴더 하부에 메뉴 폴더 와 menu.xml 파일을 만든 후, 메뉴 아이템을 배치한다.
참고로, 메뉴 리소스 폴더 만드는 방법은
res 폴더에서 New -> Android Resource Directory 를 선택.
Resource type 을 menu 로 설정하면 된다.
그리고, 메뉴 xml 파일을 만드는 방법은,
생성된 menu 폴더에서 New-> Menu Resource File 선택 후,
파일명을 기재하면 xml 파일이 생성된다.
2. 구성된 메뉴 XML을 화면에 나오게 하자.
메뉴 xml 을 화면에 로딩 하기 위해서는 해당 Activity에서 하기 함수를 오버 라이딩 하면 된다.
1
2
3
4
5
6
7
8
|
// 옵션 메뉴를 구성
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// 메뉴를 위한 인플레이트 작업.
MenuInflater inflater = getMenuInflater(); // 메뉴 xml 을 메뉴로 설정하기. inflater.inflate(R.menu.main_menu , menu);
return true;
}
|
cs |
여기 까지 구현을 하고 앱을 실행하면 옵션메뉴가 생성된 것을 확인 할 수 있다.
3. 옵션 메뉴 이벤트 동작 구현.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
// 옵션메뉴 이벤트 구현
@Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
// 선택한 옵션 메뉴 id 추출
int id = item.getItemId();
switch (id) {
case R.id.item1:
textView.setText("옵션 메뉴1 선택되었습니다");
break;
case R.id.item2:
textView.setText("옵션 메뉴2 선택되었습니다");
break;
case R.id.item3:
textView.setText("옵션 메뉴3 선택되었습니다");
break;
case R.id.item4:
textView.setText("옵션 메뉴4 선택되었습니다");
break;
}
return super.onOptionsItemSelected(item);
}
|
cs |
옵션 메뉴에 대한 이벤트를 구현하기 위해서는
onOptionsItemSelecte() 함수를 오버라이딩 한다. 인자 값 item 을 통해 어떤 메뉴가 선택되었는지 인식 할 수 있다.
해당 예제 에서는 단순히 선택된 옵션 메뉴의 이름을 Activity 의 TextView 에 프린트 하는 기능 만 구현했다.
이곳에 여러 기능들을 넣으면 확장 기능이 가능하다.
전체 코드는 하기 처럼, 간단 하다.
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
32
33
34
35
36
37
38
39
40
41
42
43
|
public class MainActivity extends AppCompatActivity {
TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView = (TextView)findViewById(R.id.text1);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.main_menu , menu);
return true;
}
@Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
// 사용자가 선택한 메뉴의 ID 값을 호출한다.
int id = item.getItemId();
switch (id) {
case R.id.item1:
textView.setText("옵션 메뉴1 선택되었습니다");
break;
case R.id.item2:
textView.setText("옵션 메뉴2 선택되었습니다");
break;
case R.id.item3:
textView.setText("옵션 메뉴3 선택되었습니다");
break;
case R.id.item4:
textView.setText("옵션 메뉴4 선택되었습니다");
break;
}
return super.onOptionsItemSelected(item);
}
}
|
cs |
다음 포스팅 에서는
해당 옵션 메뉴 중 자주 사용하는 기능을 액션바 에 배치 시키는 방법을 알아보자.
감사합니다.
* 가을녘 빗소리가 듣고 싶을땐...
Rain Sound ☆ 빗소리 를 추천드립니다.
감사합니다.
play.google.com/store/apps/details?id=blue.soo.rainsounds
'앱 만들기 > 안드로이드 study' 카테고리의 다른 글
안드로이드의 기술 #안드로이드 스튜디오 오토 임포트 설정하기. (4) | 2020.10.14 |
---|---|
안드로이드의 기술 # 미설치 앱 구글플레이에서 설치하기 와 실행 시키기. (4) | 2020.10.13 |
티스토리 방문자 수를 늘리는 것 만큼 앱 다운로드 수를 늘리는 것도... (6) | 2020.10.09 |
이클립스 폰트 설정 하기. (4) | 2020.10.07 |
안드로이드의 기술 #텍스트 색상 설정하기 (4) | 2020.10.05 |
댓글