작업 표시 줄에서 메뉴 항목을 숨기려면 어떻게합니까?


346

메뉴 항목이있는 작업 표시 줄이 있습니다. 해당 메뉴 항목을 숨기거나 표시하려면 어떻게해야합니까?

이것이 내가하려고하는 일입니다.

MenuItem item = (MenuItem) findViewById(R.id.addAction);
item.setVisible(false);
this.invalidateOptionsMenu();

답변:


484

오는 Get MenuItem등의 항목을 가리키는, 전화 setVisible거기에 그것의 가시성을 조정 한 후 호출 invalidateOptionsMenu()액션 바 메뉴가 적절하게 조정되도록 활동에.

업데이트 : A MenuItem는 레이아웃의 일부인 일반보기가 아닙니다. 그것은 특별하고 완전히 다른 것입니다. 귀하의 코드 반환 null을위한 item그리고 그 충돌의 원인. 대신 필요한 것은 다음과 같습니다.

MenuItem item = menu.findItem(R.id.addAction);

먼저 호출해야하는 순서는 다음과 같습니다. 먼저 호출 invalidateOptionsMenu()한 다음 내부 onCreateOptionsMenu(Menu)에서 MenuItem에 대한 참조 (을 호출하여 menu.findItem()) setVisible()를 가져 와서 호출 하십시오.


이것이 처음에 생각한 것이지만 응용 프로그램이 충돌합니다.
졸탄

3
@ Stir Zoltán : 글쎄, 그렇게하는 것이 응용 프로그램과 충돌하면 잘못했을 수 있습니다. 예를 들어, 대신을 사용하고 있기 때문일 MenuItem수 있습니다 . 코드와 충돌 로그를 모두 보지 않으면 알 수 없었습니다. nullgetItemfindItem
K-ballo

OK.하지만 onCreateOptionsMenu 메소드 외부의 메뉴에 대한 참조를 어떻게 얻을 수 있습니까?
졸탄

7
@ Stir Zoltán : 마지막 의견에 대해서는 이해가되지 않는다고 생각합니다 ...에서 메뉴 항목에 대한 참조를 가져 와서 onCreateOptionsMenu해당 시점에서 항목 가시성을 설정하십시오. 또는 표시 여부를 결정할 때까지 참조를 유지하십시오.
K-ballo

33
나는 일련의 단계가 잘못 되었기 때문에이 답변이 (잘못) 잘못 표현되었다고 생각합니다. 올바른 순서는 먼저 전화 invalidateOptionsMenu()를 한 다음 내부 onCreateOptionsMenu(Menu)에서 MenuItem(에 대한 호출 menu.findItem())에 대한 참조를 가져와 호출 setVisible()하는 것입니다. 답변 suhas_sm로 하고 P1r4nh4으로는 올바른 접근 방식을 제시한다.
Ted Hopp 2016 년

163

이 질문에 대한 부록을 찾았습니다.

이동 중에 메뉴 항목의 가시성을 변경하려면 활동에서 멤버 변수를 설정하면 메뉴를 숨기고 invalidateOptionsMenu()재정의 된 onCreateOptionsMenu(...)메소드 에서 항목을 호출 하고 숨기고 싶다는 것을 기억해야합니다 .

//anywhere in your code
...
mState = HIDE_MENU; // setting state
invalidateOptionsMenu(); // now onCreateOptionsMenu(...) is called again
...

@Override
public boolean onCreateOptionsMenu(Menu menu)
{
    // inflate menu from xml
    MenuInflater inflater = getSupportMenuInflater();
    inflater.inflate(R.menu.settings, menu);

    if (mState == HIDE_MENU)
    {
        for (int i = 0; i < menu.size(); i++)
            menu.getItem(i).setVisible(false);
    }
}

이 예에서는 모든 항목을 숨겼습니다.


2
이것은 내가 찾던 것입니다. MenuItem을 잡고 setVisible ()을 호출하면 예상대로 작동하지 않는 것 같습니다 (아마도 ateateOptionsMenu ()를 호출 한 후 메뉴를 다시 작성했기 때문에). 그러나 두 가지 방법 중 하나입니다.
Matt

4
모든 항목을 숨기려면 더 쉬운 방법이 있습니다. 여기에서 각 항목을 반복하는 대신 다음을 수행 할 수 있습니다 if (HIDE_MENU) { return false; } else { getSupportMenuInflater().inflate(R.menu.menu_settings, menu); return true; }. 문서 상태 : "메뉴가 표시 되려면 true를 반환해야하며 false를 반환하면 표시되지 않습니다"
w3bshark 2016 년

또한이 접근법이 허용되는 답변보다 훨씬 깨끗하다는 것을 언급하고 싶습니다. 공유해 주셔서 감사합니다!
w3bshark 2016 년

invalidateOptionMenu ()를 호출하여 onCreateOptionMenu ()를 호출하고 onCreateOptionMenu ()에서 내 조건을 처리합니다. 좋은 답변 감사합니다
user1912026

onPrepareOptionsMenu()onCreateOptionsMenu()한 번만 호출되므로 표시 / 숨기기 로직에 사용해야 하므로 초기화 후에 메뉴 항목을 변경하려는 경우에는 유용하지 않습니다. 따라서 onCreate에 팽창 시키지만 onPrepare에 표시 / 숨기기.
JCutting

89

예.

  1. 플래그 / 조건을 설정할 수 있습니다.
  2. invalidateOptionsMenu()옵션을 숨기고 싶을 때 전화 하십시오. 이 호출 onCreateOptionsMenu()됩니다.
  3. 에서 onCreateOptionsMenu(), 플래그 / 상태 및 표시하거나위한 검사는 그것을 다음과 같은 방법을 숨길 수 :
MenuItem item = menu.findItem(R.id.menu_Done);

if (flag/condition)) {
  item.setVisible(false); 
} else { }

2
invalidateOptionsMenu대신 해서는 안 invalidateOptions됩니까?
razz

3
플래그를 부울로 만들면 필요한 경우 항목의 가시성을 플래그 (또는! flag)로 설정할 수 있습니다. 따라서 item.setVisbility (! flag); if 조건이없는 하나의 라이너로 만듭니다.
jwehrle

변수 "menu"는 어디에 정의되어 있습니까?
조나단

이 매개 변수는onCreateOptionsMenu
hashas_sm

이 방법을 사용하면 항목이 여전히 공간을 소비하고 UI에서 버튼이 있어야 할 공간이 생길 수 있습니다. onPrepareOptionsMenu ()에서 removeItem을 사용하면 트릭을 수행합니다.
JCutting

39

이것을 호출 할 수 있습니다 :

MenuItem item = menu.findItem(R.id.my_item);
item.setVisible(false);

최신 정보:

확인 코드가 반환하지 않습니다 확인 null을 위해 item또는 응용 프로그램을 중단 될 수 있습니다.


이 방법을 사용하면 항목이 여전히 공간을 소비하고 UI에서 버튼이 있어야 할 공간이 생길 수 있습니다. onPrepareOptionsMenu ()에서 removeItem을 사용하면 트릭을 수행합니다.
JCutting

33

좀 더 문맥에 대한 답을 찾고있었습니다. 이제 알아 냈으므로 그 대답을 추가 할 것입니다.

메뉴 xml에서 기본적으로 버튼 숨기기

기본적으로 공유 버튼은에서 설정 한대로 숨겨집니다 android:visible="false".

여기에 이미지 설명을 입력하십시오

main_menu.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">

    <!-- hide share button by default -->
    <item
        android:id="@+id/menu_action_share"
        android:icon="@drawable/ic_share_white_24dp"
        android:visible="false"     
        android:title="Share"
        app:showAsAction="always"/>

    <item
        android:id="@+id/menu_action_settings"
        android:icon="@drawable/ic_settings_white_24dp"
        android:title="Setting"
        app:showAsAction="ifRoom"/>

</menu>

코드에 버튼 표시

그러나 공유 버튼은 일부 조건에 따라 선택적으로 표시 될 수 있습니다.

여기에 이미지 설명을 입력하십시오

MainActivity.java

public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.main_menu, menu);
    MenuItem shareItem = menu.findItem(R.id.menu_action_share);

    // show the button when some condition is true
    if (someCondition) {        
        shareItem.setVisible(true);
    }

    return true;
}

또한보십시오


onCreateOptionsMenu () 대신 onPrepareOptionsMenu () 대신 show / hide 로직을 사용해야합니다. 한 번만 호출되므로 초기화 후 메뉴 항목을 변경하려는 경우에는 유용하지 않습니다. 따라서 onCreate에 팽창 시키지만 onPrepare에 표시 / 숨기기를 사용 invalidateOptionsMenu()하여 메뉴를 새로 고 칩니다 .
JCutting

24

나를 위해 일하지 않았다. onPrepareOptionsMenu항목을 보이지 않게 설정 하기 위해 명시 적으로 사용해야 했습니다.

따라서 onCreateOptionsMenu메뉴를 만들고 onPrepareOptionsMenu가시성 등을 변경 하는 데 사용하십시오 .


1
저에게는 두 가지 방식으로 모두 효과가 있었지만 Android 문서를 기반으로 onPrepareOptionsMenu이러한 유형의 작업을 수행하기에 적합한 장소 인 것 같습니다. "화면의 표준 옵션 메뉴가 표시되도록 준비하십시오. 메뉴가 표시 될 때마다 바로 표시됩니다. 이 방법을 사용하면 항목을 효율적으로 활성화 / 비활성화하거나 내용을 동적으로 수정할 수 있습니다. "
yuval

예, 이것이 이상적입니다. onCreateOptionsMenu () 대신 onPrepareOptionsMenu () 대신 show / hide 로직을 사용해야합니다. 한 번만 호출되므로 초기화 후 메뉴 항목을 변경하려는 경우에는 유용하지 않습니다. 따라서 onCreate에 팽창 시키지만 onPrepare에 표시 / 숨기기를 사용 invalidateOptionsMenu()하여 메뉴를 새로 고 칩니다 .
JCutting

9

메뉴 레이아웃 파일에서 메뉴 항목 가시성을 처음에 다음과 같이 false로 설정하십시오.

<?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:visible="false"
        android:id="@+id/action_do_something"
        android:title="@string/txt_do_something"
        app:showAsAction="always|withText"
        android:icon="@drawable/ic_done"/>
</menu>

그런 다음 메뉴를 부풀린 후 onCreateOptionsMenu ()에서 메뉴 항목의 가시성을 false로 간단히 설정할 수 있습니다.

@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
    super.onCreateOptionsMenu(menu, inflater);
    inflater.inflate(menu,R.menu.menu);
    MenuItem item = menu.findItem(R.id.menuItemId);
    if (item != null){
        item.setVisible(false);
    }
}

onCreateOptionsMenu는 부울 값을 반환하지 않습니다. 솔루션은 완벽하게 작동했습니다.
Joseph


7

이것은 활동과 조각 모두에서 나를 위해 일했습니다.

@Override
public void onPrepareOptionsMenu(Menu menu) {
    super.onPrepareOptionsMenu(menu);
    if (menu.findItem(R.id.action_messages) != null)
        menu.findItem(R.id.action_messages).setVisible(false);
}

1
필자의 경우 onPrepareOptionsMenu는 void가 아닌 boolean을 반환합니다.
CoolMind

6

P1r4nh4 답변이 잘 작동합니다. 부울 플래그를 사용하여 단순화했습니다.

public int mState = 0; //at the top of the code
//where you want to trigger the hide action
mState = 1; // to hide or mState = 0; to show
invalidateOptionsMenu(); // now onCreateOptionsMenu(...) is called again
...

@Override
public boolean onCreateOptionsMenu(Menu menu)
{
    // inflate menu from xml
    MenuInflater inflater = getSupportMenuInflater();
    inflater.inflate(R.menu.settings, menu);

    if (mState == 1) //1 is true, 0 is false
    {
        //hide only option 2
            menu.getItem(2).setVisible(false);
    }
}

2
를 사용 0하고 1"부울 플래그"가 아닌 의사 부울입니다. 게다가 여기에 실제 부울을 사용할 이유가 없습니다.
Ingo Bürk

2
또한 하나만 숨기고 하나만 표시하는 것이 아니라 여러 상태를 가질 수 있습니다. 앱의 복잡성과 새 앱 상태에 대한 새 활동 작성 거부에 따라 메뉴의 특정 부분을 숨기려는 경우 SHOW_ALL 상태, HIDE_ALL 상태 및 HIDE_EDIT 또는 HIDE_SHARE 상태가 될 수 있습니다.
P1r4nh4

4

Android 개발자 공식 사이트에 따르면 런타임시 메뉴 항목이나 아이콘, 가시성 등을 변경하기 위해 OnCreateOptionMenu (메뉴 메뉴)를 권장하지 않습니다.

시스템이 onCreateOptionsMenu ()를 호출 한 후에는 사용자가 채우는 Menu의 인스턴스를 유지하고 어떤 이유로 메뉴가 무효화되지 않는 한 onCreateOptionsMenu ()를 다시 호출하지 않습니다. 그러나 onCreateOptionsMenu ()를 사용하여 초기 메뉴 상태를 작성하고 활동 라이프 사이클 동안 변경하지 않아야합니다.

활동 라이프 사이클 동안 발생하는 이벤트를 기반으로 옵션 메뉴를 수정하려는 경우 onPrepareOptionsMenu () 메소드에서 수행 할 수 있습니다. 이 메소드는 현재 존재하는 메뉴 오브젝트를 전달하므로 항목 추가, 제거 또는 사용 안함과 같이 수정할 수 있습니다. (Fragments는 onPrepareOptionsMenu () 콜백도 제공합니다.) --AndroidDeveloper Official Site-

권장 대로이 onOptionsItemSelected (MenuItem item) 메소드를 사용하여 사용자 입력을 추적 할 수 있습니다.

@Override
public boolean onOptionsItemSelected(MenuItem item) {

    int id = item.getItemId();

    if (id == R.id.edit) {
        Intent intent = new Intent(this, ExampleActivity.class);
        intent.putExtra(BUNDLE_KEY, mConnection);
        startActivityForResult(intent, PICK_CHANGE_REQUEST);
        return true;
    } else if (id == R.id.delete) {
        showDialog(this);
        return true;
    }

    return super.onOptionsItemSelected(item);
}

런타임에 메뉴 항목을 변경해야하는 경우 onPrepareOptionsMenu (메뉴 메뉴) 를 사용하여 메뉴 항목 을 변경할 수 있습니다.

@Override
public boolean onPrepareOptionsMenu(Menu menu){

    if (Utils.checkNetworkStatus(ExampleActivity.this)) {
        menu.findItem(R.id.edit).setVisible(true);
        menu.findItem(R.id.delete).setVisible(true);
    }else {
        menu.findItem(R.id.edit).setVisible(false);
        menu.findItem(R.id.delete).setVisible(false);
    }
    return true;
} 

일부 항목은 항상 표시되므로 setVisible(false)항상 표시되는 항목에 대해 세 개의 점 (메뉴 자체)을 클릭 할 때까지 사라지지 않습니다. 내가 사용하는 경우 invalidateOptionsMenu()onPrepareOptionsMenu즉시 자체를 재구성 항목,하지만 그들은 자신의 행동을 풀 (내가 어떤 항목을 클릭하면, 그것은 아무것도하지 않는다).
Aliton Oliveira 2019

3

값을 변수로 설정하고 invalidateOptionsMenu ()를 호출하십시오.

예를 들어

    selectedid=arg2;
            invalidateOptionsMenu();


 public boolean onPrepareOptionsMenu(Menu menu) {

    if(selectedid==1){
        menu.findItem(R.id.action_setting).setVisible(false);
        menu.findItem(R.id.action_s2).setVisible(false);
        menu.findItem(R.id.action_s3).setVisible(false);
    }
    else{
        if(selectedid==2){
            menu.findItem(R.id.action_search).setVisible(false);
            menu.findItem(R.id.action_s4).setVisible(false);
            menu.findItem(R.id.action_s5).setVisible(false);
        }
    }
    return super.onPrepareOptionsMenu(menu);
}

일부 항목은 항상 표시되므로 setVisible(false)항상 표시되는 항목에 대해 세 개의 점 (메뉴 자체)을 클릭 할 때까지 사라지지 않습니다. 내가 사용하는 경우 invalidateOptionsMenu()onPrepareOptionsMenu즉시 자체를 재구성 항목,하지만 그들은 자신의 행동을 풀 (내가 어떤 항목을 클릭하면, 그것은 아무것도하지 않는다).
Aliton Oliveira 2019

3

toolbar.getMenu().clear();한 번에 모든 메뉴 항목을 숨길 수 있습니다


@Ajeet_Yadav 메뉴를 지우고 나면 메뉴를 볼 수있는 방법이 있습니까?
Shawn

3

메뉴에서 모든 항목의 가시성을 설정하면 앱바 메뉴 또는 오버플로 메뉴가 자동으로 숨겨집니다

private Menu menu_change_language;

...

...

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    ...
    ...
    menu_change_language = menu;
    menu_change_language.findItem(R.id.menu_change_language)
           .setVisible(true);

    return super.onCreateOptionsMenu(menu);
}

다른 조각으로 가기 전에 다음 코드를 사용하십시오.

if(menu_change_language != null){                 
    menu_change_language.findItem(R.id.menu_change_language)
       .setVisible(false);
}

2

https://stackoverflow.com/a/21215280/466363-Look Alterno와 Sufian의 답변

  • ActivityCompat.invalidateOptionsMenu ()는 onPrepareOptionsMenu ()를 콜백하지 않습니다. 메뉴를 직접 업데이트합니다.
  • 내 someMethod ()는 onCreateOptionsMenu () 이전에도 여러 곳에서 호출되므로 mMenu! = null을 확인해야합니다.
  • API 8을 사용하여 작동해야 함

.

private Menu mMenu;
   @Override
   public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
       inflater.inflate(R.menu.track_fragment, menu);
       mMenu = menu;
       }
   ...
   private void someMethod() {
   ...
       if (mMenu != null) {
          MenuItem item = mMenu.findItem(R.id.new_track);
          if (item != null) {
               item.setVisible(false);
               ActivityCompat.invalidateOptionsMenu(this.getActivity());
           }
       }
   ...
   }
  • ActivityCompat.invalidateOptionsMenu ()는 onPrepareOptionsMenu ()를 콜백하지 않습니다. 메뉴를 직접 업데이트합니다.

  • 내 someMethod ()는 onCreateOptionsMenu () 이전에도 여러 곳에서 호출되므로 mMenu! = null을 확인해야합니다.

  • API 8을 사용하여 작동해야 함

2

위의 답변과 같이 모든 작업을 수행했지만 메뉴 항목이 여전히 표시되면 고유 한 리소스 를 참조하는지 확인하십시오 . 예를 들어 onCreateOptionsMenu 또는 onPrepareOptionsMenu에서

@Override
public void onPrepareOptionsMenu(Menu menu) {
    super.onPrepareOptionsMenu(menu);
    MenuItem menuOpen = menu.findItem(R.id.menu_open);
    menuOpen.setVisible(false);
}

R.id.menu_open을 Ctrl + 클릭하고 하나의 메뉴 파일에만 존재하는지 확인하십시오. 이 자원이 이미 어디에서나 사용되어 활동에로드 된 경우 숨기려고 시도합니다.


2

하나의 명령으로 메뉴의 모든 항목을 숨기는 가장 좋은 방법은 메뉴 xml에서 "group"을 사용하는 것입니다. 오버플로 메뉴에있는 모든 메뉴 항목을 같은 그룹에 추가하십시오.

이 예제에는 항상 표시되는 두 개의 메뉴 항목 (일반 항목 및 검색)과 세 개의 오버플로 항목이 있습니다.

<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">

    <item
        android:id="@+id/someItemNotToHide1"
        android:title="ITEM"
        app:showAsAction="always" />

    <item
        android:id="@+id/someItemNotToHide2"
        android:icon="@android:drawable/ic_menu_search"
        app:showAsAction="collapseActionView|ifRoom"
        app:actionViewClass="android.support.v7.widget.SearchView"
        android:title="Search"/>

    <group android:id="@+id/overFlowItemsToHide">
    <item android:id="@+id/someID" 
    android:orderInCategory="1" app:showAsAction="never" />
    <item android:id="@+id/someID2" 
    android:orderInCategory="1" app:showAsAction="never" />
    <item android:id="@+id/someID3" 
    android:orderInCategory="1" app:showAsAction="never" />
    </group>
</menu>

그런 다음 활동 (onCreateOptionsMenu에서 선호)에서 setGroupVisible 명령을 사용하여 모든 메뉴 항목 가시성을 false 또는 true로 설정하십시오.

public boolean onCreateOptionsMenu(Menu menu) {
   menu.setGroupVisible(R.id.overFlowItems, false); // Or true to be visible
}

활동의 다른 곳 에서이 명령을 사용하려면 메뉴 클래스를 로컬에 저장하고 createOptionsMenu 전에 실행할 수 있기 때문에 메뉴가 null인지 항상 확인하십시오.

Menu menu;

public boolean onCreateOptionsMenu(Menu menu) {
       this.menu = menu;

}

public void hideMenus() {
       if (menu != null) menu.setGroupVisible(R.id.overFlowItems, false); // Or true to be visible       
}


1

더 나은 방법은 메뉴에 멤버 변수를 사용하고 onCreateOptionsMenu ()에서 초기화 한 다음 옵션 메뉴를 무효화하지 않고 setVisible ()을 사용하는 것입니다.


1

이 코드는 나를 위해 일했다

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.main_menu,menu);
    if (Application.sharedPreferences.getInt("type",1) == 2)
    {
        menuItem = menu.findItem(R.id.menu_travel_orders);
        menuItem.setVisible(false);
    }
    return super.onCreateOptionsMenu(menu);
}

1

이 접근법은 나를 위해 일했습니다.

private  Menu thismenu;

if (condition)
{
   if(thismenu != null)
   {
       thismenu.findItem(R.id.menu_save).setVisible(true);
       Toast.makeText(ProfileActivity.this, 
    ""+thismenu.findItem(R.id.menu_save).getTitle(),
                Toast.LENGTH_SHORT).show();
   }else
   {
       thismenu.findItem(R.id.menu_save).setVisible(false);
   }
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
   getMenuInflater().inflate(R.menu.profile_menu, menu);
   thismenu = menu;

   return true;
}

1

범위에서 액세스 할 수없는 활동에서 메뉴 항목에 액세스하려고합니다. 뷰가 활동이나 레이아웃 과 바인드되지 않기 때문에 메뉴 항목을 찾기위한 호출은 null 을 리턴 합니다. 호출 .

메뉴 항목은 " Navigation Bar "와 같은 항목으로 바인딩됩니다. " 은 해당 활동과 바인드됩니다.

따라서 활동 ()에서 해당보기를 초기화 한 다음 해당보기가있는 메뉴 항목에 액세스하십시오.

Navigation navView;
navView = findViewById(R.id.navigationView);

MenuItem item = navView.getMenu().findItem(R.id.item_hosting);
item.setVisible(false);

1

사용하다 invalidateOptionsMenu()

전화하기 위해 onPrepareOptionsMenu(menu: Menu?)

onCreateOptionsMenu ()를 사용하여 초기 메뉴 상태를 작성하고 활동 라이프 사이클 동안 변경하지 않아야합니다 ...

이벤트가 발생하고 메뉴 업데이트를 수행하려는 경우 시스템이 onPrepareOptionsMenu ()를 호출하도록 invalidateOptionsMenu ()를 호출해야합니다.

https://developer.android.com/guide/topics/ui/menus


0

Android kotlin은 프로그래밍 방식으로 작업 표시 줄의 메뉴 항목을 숨기거나 설정합니다.

override fun onCreateOptionsMenu(menu: Menu): Boolean {
    val inflater = menuInflater
    inflater.inflate(R.menu.main_menu, menu)
    val method = menu.findItem(R.id.menu_method)
    method.isVisible = false //if want to show set true
    return super.onCreateOptionsMenu(menu)
}
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.