2010-12-04 7 views
0

Androidのアクティビティライフサイクルを理解していると思いますが、フォローインが起こっている理由をまだ理解できません。Androidのメニューがアクティビティ間で共有される(不要)

  • ログイン活動 - ログイン画面
  • 主な活動 - ログインアクティビティのメインアプリケーションインタフェース

は、私がログインを検証するためのサービスに接続します。パスワードが正しければ、私が使用して、メインの活動に切り替える:

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; 
} 

とても良い: は、私は私が膨張する主な活動の[オプション]メニューを持っています。しかし、私はユーザーがログアウトしてログイン画面に戻ることができるようにしたい。 だからメインの活動で、私はログアウトできますメニューのオプションがあります:私はそのメニューボタンを押すと

@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キーを押すとメインアプリケーションメニューが表示されます。

ログインアクティビティからメニューを削除するにはどうすればよいですか?

おかげ

+0

相続の結果ですか? (例えば、 'class Login extends Main')。 –

+0

それは賢明な質問です。 MyAbstractActivity(基本クラス)、LoginActivityはMyAbstractActivity、MainActivityはMyAbstractActivityを継承しています。私はMainActivityクラスのメニューを膨らませます。 – Marco83

答えて

1

オイオプス、私の悪い。私がコードの別の部分に対処していたときに、inflateメニューコードが誤ってコピーされてログインアクティビティに貼り付けられました:

ごめんなさい。 どうもありがとうございました!

0

は、私はあなたがログイン・アクティビティーに行くためにあなたのMainActivityからstartActivityを呼び出す必要はありませんだと思います。アクティビティチェーンは、あなたのMainActivityからの呼び出し終了で十分でしょう。

+0

私はそれがマルコがそれをやっているより良い方法だと思います。もちろん、hiはメインアクティビティを開始する前にログインアクティビティを終了する必要があります。それ以外の場合は、メインアクティビティのBackキーを押してログアウトしていることがわかりますが、これはうまくいきません。 – Cristian

関連する問題