2011-08-25 45 views
2

我使用了一種技術(http://united-coders.com/nico-heid/use-android-activitygroup-within-tabhost-to-show-different-activity) 來開發一個應用程序,其中我有3個選項卡,每個選項卡都有自己的ActivityGroup。我有每個活動的菜單。但是當我按下菜單按鈕時,菜單不會出現。在做了一些隨機的跟蹤之後,我發現如果我在ActivityGroup中實現了onCreateOptionsMenu,那麼只會出現菜單。我無法執行Activity的onCreateOptionsMenu。 請建議如何使用Activity的菜單,因爲我在單個ActivityGroup中有許多活動,並且通過在ActivityGroup中實現onCreateOptionsMenu不是處理此問題的正確方法。安卓問題活動組中的活動菜單

回答

1

這裏是你如何推出它: 在你的ActivityGroup類onCreateOptionMenu()調用當前ActivityonCreateOptionMenu()

public boolean onPrepareOptionsMenu(Menu menu) 
{ 
    Activity activity = getLocalActivityManager().getCurrentActivity(); 
    return activity.onPrepareOptionsMenu(menu); 
} 

@Override 
public boolean onPrepareOptionsMenu(Menu menu) 
{ 
    Activity activity = getLocalActivityManager().getCurrentActivity(); 
    return activity.onPrepareOptionsMenu(menu); 
} 

@Override 
public boolean onOptionsItemSelected (MenuItem item) 
{ 
    Activity activity = getLocalActivityManager().getCurrentActivity(); 
    return activity.onOptionsItemSelected(item); 
} 

,並在您的個人Activity

@Override 
public boolean onCreateOptionsMenu(Menu menu) 
{ 
    MenuInflater inflater = getMenuInflater(); 
    inflater.inflate(R.menu.menu, menu); 
    return true; 
} 
@Override 
public boolean onPrepareOptionsMenu(Menu menu) 
{ 
    return true; 
} 
@Override 
public boolean onOptionsItemSelected (MenuItem item) 
{ 
    switch (item.getItemId()) 
    { 
    case R.id.MENU_LOGOUT: 
     Dialog.showToast(this, "message"); 
     return true; 
    case R.id.MENU_HELP: 
     break; 
    case R.id.MENU_ABOUT: 
     break; 
    } 
    return super.onOptionsItemSelected(item); 
} 

,如果你想要任何Activity沒有任何Menu只是覆蓋這些方法

@Override 
public boolean onCreateOptionsMenu(Menu menu) 
{ 
    return true; 
} 
@Override 
public boolean onPrepareOptionsMenu(Menu menu) 
{ 
    return true; 
} 
+0

非常感謝您的幫助。現在它工作正常。 – Manish