2012-04-20 2 views
3
나는 동적으로 내 메뉴를 변경할

이외의 메뉴를 얻을, 그래서이 있지만 내 응용 프로그램 충돌 시도 :자신의 전화

내 모든 활동에 내 메뉴를 활용하려면 다음

다음
private Menu menu; 

의 onCreateOptionsMenu에 반환하기 전에를 문 : 함수에

this.menu = menu; 

: 그리고

MenuItem parent = menu.findItem(R.id.parent_menu); 
parent.setTitle("test"); 
,

크래시하기 ... 나는 같은 대답을 창안했다 : Android - How to dynamically change menu item text outside of onOptionsItemsSelected or onCreateOptionsMenu 나를 위해 일하지 않는다. 사전에

감사

PS : MenuItem의 부모와 setTitle이라는 해설에 있다면, 그건 잘 작동합니다. 내가 처음으로 메뉴를 표시 할 때


그래서 문제의 onCreateOptionsMenu는 어떻게 전에 호출 할 수 있습니다 ... 단지라고한다?

04-20 17:00:19.170: D/dalvikvm(26887): GC_EXTERNAL_ALLOC freed 45K, 50% free 2729K/5379K, external 0K/0K, paused 27ms 
04-20 17:00:19.230: D/dalvikvm(26887): GC_EXTERNAL_ALLOC freed 11K, 49% free 2747K/5379K, external 565K/576K, paused 33ms 
04-20 17:00:19.300: D/dalvikvm(26887): GC_EXTERNAL_ALLOC freed 62K, 49% free 2787K/5379K, external 824K/1091K, paused 22ms 
04-20 17:00:19.825: D/dalvikvm(26887): GC_CONCURRENT freed 314K, 50% free 2859K/5639K, external 1521K/1630K, paused 2ms+3ms 
04-20 17:00:19.845: I/webclipboard(26887): clipservice: [email protected] 
04-20 17:00:20.145: D/WML_SISO(26887): InitPasteboardJni 
04-20 17:00:20.185: D/dalvikvm(26887): GC_CONCURRENT freed 323K, 48% free 3062K/5831K, external 1591K/1630K, paused 3ms+2ms 
04-20 17:00:20.210: D/CLIPBOARD(26887): Hide Clipboard dialog at Starting input: finished by someone else... ! 
04-20 17:00:20.340: D/dalvikvm(26887): GC_CONCURRENT freed 179K, 44% free 3423K/6087K, external 1425K/1630K, paused 1ms+2ms 
04-20 17:00:21.935: D/AndroidRuntime(26887): Shutting down VM 
04-20 17:00:21.935: W/dalvikvm(26887): threadid=1: thread exiting with uncaught exception (group=0x4001e578) 
04-20 17:00:21.940: E/AndroidRuntime(26887): FATAL EXCEPTION: main 
04-20 17:00:21.940: E/AndroidRuntime(26887): java.lang.NullPointerException 
04-20 17:00:21.940: E/AndroidRuntime(26887): at p.NewsRecovery.AddWebsiteActivity$1.onClick(AddWebsiteActivity.java:133) 
04-20 17:00:21.940: E/AndroidRuntime(26887): at android.view.View.performClick(View.java:2538) 
04-20 17:00:21.940: E/AndroidRuntime(26887): at android.view.View$PerformClick.run(View.java:9152) 
04-20 17:00:21.940: E/AndroidRuntime(26887): at android.os.Handler.handleCallback(Handler.java:587) 
04-20 17:00:21.940: E/AndroidRuntime(26887): at android.os.Handler.dispatchMessage(Handler.java:92) 
04-20 17:00:21.940: E/AndroidRuntime(26887): at android.os.Looper.loop(Looper.java:130) 
04-20 17:00:21.940: E/AndroidRuntime(26887): at android.app.ActivityThread.main(ActivityThread.java:3691) 
04-20 17:00:21.940: E/AndroidRuntime(26887): at java.lang.reflect.Method.invokeNative(Native Method) 
04-20 17:00:21.940: E/AndroidRuntime(26887): at java.lang.reflect.Method.invoke(Method.java:507) 
04-20 17:00:21.940: E/AndroidRuntime(26887): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:907) 
04-20 17:00:21.940: E/AndroidRuntime(26887): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:665) 
04-20 17:00:21.940: E/AndroidRuntime(26887): at dalvik.system.NativeStart.main(Native Method) 
04-20 17:00:22.015: D/dalvikvm(26887): GC_EXTERNAL_ALLOC freed 586K, 50% free 3142K/6215K, external 1511K/1630K, paused 38ms 
04-20 17:00:22.065: D/szipinf(26887): Initializing inflate state 
04-20 17:00:22.065: D/szipinf(26887): Initializing zlib to inflate 
04-20 17:00:22.170: D/dalvikvm(26887): GC_FOR_MALLOC freed 222K, 50% free 3282K/6535K, external 1933K/2370K, paused 17ms 
04-20 17:00:22.170: I/dalvikvm-heap(26887): Grow heap (frag case) to 7.591MB for 129176-byte allocation 
04-20 17:00:22.190: D/dalvikvm(26887): GC_FOR_MALLOC freed 18K, 50% free 3390K/6663K, external 1586K/2098K, paused 12ms 
04-20 17:00:22.210: D/dalvikvm(26887): GC_FOR_MALLOC freed 134K, 51% free 3319K/6663K, external 1586K/2098K, paused 11ms 
04-20 17:00:22.210: I/dalvikvm-heap(26887): Grow heap (frag case) to 7.412MB for 258336-byte allocation 
04-20 17:00:22.230: D/dalvikvm(26887): GC_FOR_MALLOC freed 8K, 49% free 3563K/6919K, external 1586K/2098K, paused 11ms 
04-20 17:00:22.255: D/dalvikvm(26887): GC_FOR_MALLOC freed 0K, 49% free 3563K/6919K, external 1586K/2098K, paused 12ms 
04-20 17:00:22.255: I/dalvikvm-heap(26887): Grow heap (frag case) to 7.527MB for 129176-byte allocation 
04-20 17:00:22.270: D/dalvikvm(26887): GC_FOR_MALLOC freed 253K, 52% free 3435K/7047K, external 1556K/2068K, paused 14ms 
+0

충돌 ------ >> ADD 로그 캣 –

+0

죄송합니다 아, 내 게시물을 편집하고, 오류를 발견하면, 당신은 로그 캣을 "해독"하는 짓을하는 방법을 말해 줄 수? 감사합니다 – Shinao

+0

그래서 문제는 onCreateOptionsMenu가 처음으로 메뉴를보고 싶을 때만 호출됩니다 ... 전에 어떻게 호출 할 수 있습니까? – Shinao

답변

0

변수를 설정하기 전에 메뉴를 팽창해야합니다.

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    getMenuInflater().inflate(R.menu.menu_visit_profile, menu); 
    mOptionsMenu = menu; 
    return super.onCreateOptionsMenu(menu); 
} 

그리고 나서 사용할 수 있습니다.

MenuItem item = mOptionsMenu.findItem(R.id.visit_profile_hi); 
item.setTitle("Remover hi");