我有一个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类时,无法识别它。

关于如何使此代码在主要活动之外工作的任何建议?

谢谢-moticon

最佳答案

您不能仅将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
}

10-08 14:50