0

에 항목을 추가 할 지금 당장처럼 보이는 optionsmenu있어 :안드로이드 OptionsMenu, 런타임

enter image description here

내가 항목 하나를 클릭하면, 나는 두 개의 새로운 항목을 찾고 메뉴에 추가한다고 말할 수 있습니다를 이 같은 :

enter image description here

나는 문제의 onCreateOptionsMenu 한 번만 호출되고 onPrepareOptionsMenu 전화의 menubutton이 clicke 인 경우에만 호출을 보이기 때문에 (가 열려있는 동안) 런타임에이 일을하는 데 문제가

디. 이 새로운 항목을 추가하면 새로 고치기 만하면됩니다.

도움 주셔서 감사합니다.

+0

열려있는 동안 메뉴를 업데이트 하시겠습니까? 프로그래밍 방식으로 (메뉴 버튼을 누르지 않고) 숨기고 표시하려고 했으므로 onPrepareOptionsMenu가 호출됩니까? – Sver

+0

예, CloseOptionsMenu() 및 OpenOptionsMenu()를 사용하여이 방법을 시도했습니다. 이렇게하면 메뉴가 닫히고 준비는되지만 다시 열리지는 않습니다. –

+1

하위 메뉴 사용에 대해 생각해 보셨습니까? (나는 그것이 당신이 원하는 것처럼 메뉴에 추가하지 않을 것이라는 것을 안다, 그러나 기능은 당신이 찾고있는 무슨에 관하여이다). – Barak

답변

0

옵션 항목을 선택하면 시스템이 옵션 메뉴를 닫습니다. 이것은 onOptionsItemSelected()가 실행 된 후에 발생합니다. 당신이해야 할 일은 전체 프로세스가 완료되어야한다는 것입니다. 다음에 옵션 메뉴가 프로그래밍 방식으로 열리므로 onPrepareOptionsMenu()가 호출됩니다. 사용자가 "이 더 많은 옵션을 추가"옵션을 선택했을 때, onOptionsItemSelected에서

  1. 을() 활동에 플래그를 설정하지만, 다른 작업을 수행하지 않습니다

    이보십시오.

  2. onOptionsMenuClosed()를 재정의하십시오. 플래그가 설정되어 있는지 확인하십시오. 그럴 경우, 다음 패스에서 UI 스레드에 의해 실행되도록 게시하십시오. 아무 것도하지 않고 옵션 메뉴를 다시 열어야합니다 (예 :

    runOnUiThread (새의 Runnable() { @Override 공공 무효 실행() { openOptionsMenu(); } });

  3. onPrepareOptionsMenu()를 재정의하십시오. 플래그가 설정되어 있는지 확인하십시오. 그럴 경우 두 개의 추가 메뉴 항목을 추가하고 플래그를 설정 해제하십시오. "추가 항목 추가"메뉴 항목이 누를 때마다 계속 새 항목을 추가하지 못하게하려면 추가 작업을 수행해야합니다. 그렇지 않으면 찾고있는 동작이 아닙니다.