如何使用菜单项从 OnCreate 调用方法?
How to call for a method from OnCreate with menu item?
我正在构建一个应用程序,其中包含从远程(通过 ADB)加载作品 space 的选项,在 OnCreate
:
中使用此代码
Bundle extras = this.getIntent ( ).getExtras ( );
if (extras != null && extras.containsKey("workspace"))
{
String param = extras.getString("workspace");
WSmethods.loadWorkspace(param); //work space methods class
}
这项工作space影响保存菜单项,因此我的工作space构造器包含此菜单项,如下所示:
public workspaceMethods(MyActivity myActivity, MenuItem saveItem)
但是,为了接收 MenuItem
我必须等待 onCreateOptionsMenu
在 OnCreate
之后调用的方法
因此,我发现自己陷入了纠结:一方面我必须在 OnCreate 中调用我的工作 space 方法(以便从 ADB 接收命令),另一方面我必须接收我的菜单项在调用 OnCreate 后初始化。
最重要的问题是:如何使用菜单项从 OnCreate 调用方法? (更准确地说,在我的例子中,问题是如何在 OnCreate 方法中用菜单项初始化 class 变量?)
EDIT 我像这样初始化 WSmethods
(在 onCreateOptionsMenu 中):
WSmethods = new workspaceMethods(this, menu.findItem(R.id.action_save));
编辑:
我只是要重新开始,因为我的印象是您正在实施片段框架。
试试这个:
@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;
}
}
即使来自 onCreateOptionsMenu
,您也可以访问 intent extras。因此,只需从中调用您的方法 - 在为您的菜单充气后。
我正在构建一个应用程序,其中包含从远程(通过 ADB)加载作品 space 的选项,在 OnCreate
:
Bundle extras = this.getIntent ( ).getExtras ( );
if (extras != null && extras.containsKey("workspace"))
{
String param = extras.getString("workspace");
WSmethods.loadWorkspace(param); //work space methods class
}
这项工作space影响保存菜单项,因此我的工作space构造器包含此菜单项,如下所示:
public workspaceMethods(MyActivity myActivity, MenuItem saveItem)
但是,为了接收 MenuItem
我必须等待 onCreateOptionsMenu
在 OnCreate
因此,我发现自己陷入了纠结:一方面我必须在 OnCreate 中调用我的工作 space 方法(以便从 ADB 接收命令),另一方面我必须接收我的菜单项在调用 OnCreate 后初始化。
最重要的问题是:如何使用菜单项从 OnCreate 调用方法? (更准确地说,在我的例子中,问题是如何在 OnCreate 方法中用菜单项初始化 class 变量?)
EDIT 我像这样初始化 WSmethods
(在 onCreateOptionsMenu 中):
WSmethods = new workspaceMethods(this, menu.findItem(R.id.action_save));
编辑:
我只是要重新开始,因为我的印象是您正在实施片段框架。
试试这个:
@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;
}
}
即使来自 onCreateOptionsMenu
,您也可以访问 intent extras。因此,只需从中调用您的方法 - 在为您的菜单充气后。