活动之间共享的Android菜单(不需要的)

时间:2010-12-04 12:16:58

标签: android menu

我认为我理解Android上的Activity生命周期,但我仍然无法理解为什么会发生这种情况。

  • 登录活动 - 登录屏幕
  • 主要活动 - 主要应用程序界面

在Login活动中,我连接到服务以验证登录。如果密码正确,我使用以下方法切换到主要活动:

Intent intent = new Intent(this, MainActivity.class);
startActivity(intent);

登录活动中没有“选项”菜单。 我在主要活动中有一个选项菜单,我用它充气:

    @Override
 public boolean onCreateOptionsMenu(Menu menu) {
     MenuInflater inflater = getMenuInflater();
     inflater.inflate(R.menu.option, menu);
     return true;
 }

到目前为止一切顺利。但我希望用户能够注销并返回登录屏幕。 所以在Main活动中,我在菜单中有一个允许注销的选项:

   @Override
 public boolean onOptionsItemSelected(MenuItem item) {
     // Handle item selection
     switch (item.getItemId()) {
     case R.id.menuReset:
      getModel().deleteCredentials // stuff to logout from my service
      startActivity(new Intent(this, LoginActivity.class));
      finish();
      return true;
     }
 } 

如果按下该菜单按钮,应用程序将再次显示“登录”活动。但是,如果按MENU键,应用程序将显示主要活动中的菜单,即使它不可见。

此外,如果我回到主屏幕(按HOME)并在一段时间后返回我的活动,应用程序将显示登录活动,但如果我按MENU键,主应用程序菜单仍会显示。

如何从登录活动中删除菜单?

由于

2 个答案:

答案 0 :(得分:1)

Oooooops,我的坏。当我处理另一段代码时,意外复制了膨胀菜单代码并粘贴到了Login Activity:)

对此感到抱歉 无论如何,谢谢你的支持!!

答案 1 :(得分:0)

我认为您不需要从MainActivity调用startActivity来转到Login Activity。因为活动链,就足以从你的MainActivity调用完成。