我正在构建一个应用程序,可以使用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));
答案 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;
}
}