如何使用菜单项从OnCreate调用方法?

时间:2015-12-22 13:22:53

标签: android menuitem

我正在构建一个应用程序,可以使用OnCreate中的代码来远程(通过ADB)加载工作空间:

Bundle extras = this.getIntent ( ).getExtras ( );
if (extras != null && extras.containsKey("workspace"))
{
    String param = extras.getString("workspace");
    WSmethods.loadWorkspace(param); //work space methods class
}

此工作空间效果保存菜单项,因此我的工作区约束器包含此菜单项,如下所示:

public workspaceMethods(MyActivity myActivity, MenuItem saveItem)

但是,为了接收MenuItem,我必须等待onCreateOptionsMenu之后调用的OnCreate方法

因此,我发现自己陷入了纠结:一方面,我必须在OnCreate中调用我的工作空间方法(以便从ADB接收命令),另一方面,我必须接收我的菜单项, OnCreate叫。

底线,问题:如何使用菜单项从OnCreate调用方法? (为了更准确,在我的例子中,问题是如何使用OnCreate方法中的菜单项初始化类变量?)

编辑我像这样初始化WSmethods(在onCreateOptionsMenu中):

WSmethods = new workspaceMethods(this, menu.findItem(R.id.action_save));

2 个答案:

答案 0 :(得分:1)

即使来自onCreateOptionsMenu,您也可以访问目标附加内容。因此,只需在充实菜单后调用您的方法即可。

答案 1 :(得分:0)

编辑:

我正在重启,因为我的印象是你正在实施片段框架。

试试这个:

@Override
public void onPostCreate(Bundle savedInstance)
{
    super .onPostCreate(savedInstance);
    WSmethods = new workspaceMethods(this, menu.findItem(R.id.action_save));
}
@Override
public boolean onOptionsItemSelected(MenuItem item)
{
    int id = item.getItemId();
    switch (id)
    {
        case R.id.action_save:
             WSmethods = new workspaceMethods(Activity.this, item);
             //do actions associated with method
              break;
             //other switch cases
         default:
           //implement a default action
              break;
     }
}