AndroidStudio 옵션 메뉴

AndroidStudio에서 앱의 옵션 메뉴를 정리합니다.

옵션 메뉴



옵션 메뉴는 アクションバー(アプリバー)에 표시되는 메뉴입니다.アクションバー 에는 옵션 메뉴나 오버플로우 메뉴 등을 표시할 수 있습니다.


참조

옵션 메뉴 표시



옵션 메뉴를 표시하려면 다음과 같이 하십시오.

1, 옵션 메뉴에 대한 .xml 파일 만들기
2,.xml 파일에 전용 태그 작성
3, 활동에 onCreateOptionsMenu()メソッドを実装する

1, 옵션 메뉴에 대한 .xml 파일 만들기



menu 폴더를 마우스 오른쪽 버튼으로 클릭 > new > Menu Resouce File > OK

AndroidStudio에서는 리소스 파일 작성 전용의 기능이 있으므로, 이용한다.

2,.xml 파일에 전용 태그 작성


menuタグ 안에 하나의 선택에 대해 itemタグ 를 하나 기술합니다.itemタグ 에  
  ∟android:id
  ∟app:showAsAction
  ∟android:title
의 3개의 속성은 반드시 기술이 필요

샘플 코드



menun.xml
<?xml version="1.0" encoding="utf-8"?>
<menu
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">
    <item
        android:id="@+id/menuListOptionTeishoku"
        app:showAsAction="never"
        android:title="@string/menu_list_options_teishoku"/>

    <item
        android:id="@+id/menuListOptionCurry"
        app:showAsAction="never"
        android:title="@string/menu_list_options_curry"/>

</menu>

android:id:R 값으로 사용할 id

app:showAsAction:액션 바에 표시할지 여부 설정

∟showAsAction의 속성 값


속성 값
내용


never
그 선택은 오버플로 메뉴에 저장됩니다.

always
항상 액션 바에 표시됩니다. 다만, always로 하면, 화면 사이즈에 따라서는 약간 표시가 어긋나 버리는 일도 있으므로, ifRoom의 사용이 추천되고 있다.

ifRoom
액션 바에 표시할 여유가 있는 경우는 표시하고, 없는 경우는 오버플로우 메뉴에 저장한다.


android:title:선택사항 표시 문자열

Tips 메뉴 중첩



옵션 메뉴는 item 태그에 menu-item 태그의 조합을 추가로 설명하여 선택 사항을 중첩할 수 있습니다.

3, 활동에 "onCreateOptionsMenu () 메서드 구현



샘플 코드



MainActivity.kt
    override fun onCreateOptionsMenu(menu: Menu): Boolean {
        //オプションメニュー用XMLファイルをインフレイト
        menuInflater.inflate(R.menu.menu_options_menu_list, menu)
        return true
    }

inflate 메소드의 제 1 인수에는 해당 메뉴 .xml 파일의 R값을 지정한다.

컨텍스트 메뉴



컨텍스트 메뉴는 목록보기 등을 길게 누를 때 표시되는 메뉴입니다.

참조

컨텍스트 메뉴 표시



컨텍스트 메뉴는 옵션 메뉴와 거의 동일한 절차입니다.
다음 절차.

1, 컨텍스트 메뉴에 대한 .xml 파일 만들기
2,.xml 파일에 전용 태그 작성
3, 활동에 onCreateContextMenu()メソッド 구현
4, onCreate()로 컨텍스트 메뉴를 표시시키는 화면 부품 등록

1, 컨텍스트 메뉴에 대한 .xml 파일 만들기



옵션 메뉴와 동일합니다.

2,.xml 파일에 전용 태그 작성



이쪽도 옵션 메뉴와 거의 같습니다.
그러나 showAsAction 속성은 사용할 수 없습니다.

샘플 코드



menu_context_menu_list.xml
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:id="@+id/menuListContextInfo"
        android:title="@string/menu_list_context_desc" />
    <item
        android:id="@+id/menuListContextOrder"
        android:title="@string/menu_list_context_order" />

</menu>

3, 활동에 onCreateContextMenu() 메소드 구현



return 절이 필요하지 않습니다.

샘플 코드



MainActivity.kt
    //コンテキストメニュー
    override fun onCreateContextMenu(menu: ContextMenu, view: View,
        menuInfo: ContextMenu.ContextMenuInfo) {
        //親クラスの同名のメソッドの呼び出し。
        super.onCreateContextMenu(menu, view, menuInfo)
        //コンテキストメニュー用xmlファイルをインフレイト
        menuInflater.inflate(R.menu.menu_context_menu_list, menu)
        //コンテキストメニューのヘッドタイトルを設定
        menu.setHeaderTitle(R.string.menu_list_context_header)
    }

4, onCreate()로 컨텍스트 메뉴를 표시시키는 화면 부품을 등록한다



컨텍스트 메뉴를 표시하는 뷰, 즉 길게 누르기를 감지하는 뷰를 미리 등록해야합니다.

MainActivity 내의 onCreate() 메소드내에 registerForContextMenu() 메소드를 기술.
인수는 컨텍스트 메뉴를 표시하는 화면 부품을 기술한다.
registerForContextMenu(lvMenu)

좋은 웹페이지 즐겨찾기