在主要活动类之外实现onCreateOptionsMenu

时间:2012-01-31 19:29:51

标签: android menu

我有一个UIManager类,我想管理所有用户交互,包括菜单。

我可以使用此代码正常运行菜单:

    @Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.main_menu, menu);
    MenuItem payloadItem = (MenuItem) menu.findItem(R.id.payloadDisplayChoice);
    payloadItem.setTitle("Show L3 payload");
    return true;
}

但我想在UIManager类中实现此代码。 UIManager引用了Activity和baseContext,但是当我把这段代码放在UIManager类中时,它无法识别。

有关如何使此代码在主Activity之外工作的任何建议?

谢谢 - moticon

1 个答案:

答案 0 :(得分:0)

您不能只将onCreateOptionsMenu方法放在UIManager类中,因为它属于Activity类。

但是,您可以在活动中创建对UIManager类的引用,然后创建将暂停onCreateOptionsMenu(在UIManager中)的方法。例如(在Activity类中):

private UIManager manager=new UIManager(); //your UIManager reference

@Override
public boolean onCreateOptionsMenu(Menu menu){
    return manager.handleOnCreateOptionsMenu(); //method of UIManager, that handles your onCreateOptionsMenu
}