2010-12-04 5 views
0

Je pense avoir compris le cycle de vie de l'activité sur Android, mais je n'arrive toujours pas à comprendre pourquoi le suivi se produit.Menu Android partagé entre les activités (non désirées)

  • activité Connexion - écran Connexion
  • Activité principale - interface de l'application principale

Dans l'activité de connexion, je me connecte à un service pour valider la connexion. Si le mot de passe est correct, je passe à l'activité principale en utilisant:

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

Il n'y a pas de menu Options dans l'activité Connexion. J'ai un menu Options Activité principale que je se gonflent avec:

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

Jusqu'à présent, si bon. Mais je veux que l'utilisateur puisse se déconnecter et revenir à l'écran de connexion. Ainsi, dans Activité principale J'ai une option dans le menu qui permet de vous déconnecter:

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

Si j'appuie sur ce bouton de menu, l'application affiche à nouveau l'activité Connexion. Mais si j'appuie sur la touche MENU, l'application affiche le menu de l'activité principale même si elle n'est pas visible.

En outre, si je retourne à l'écran d'accueil (en appuyant sur HOME) et revenez à mon activité après un certain temps, l'application affiche l'activité Connexion, mais si j'appuie sur la touche MENU, le menu principal s'affiche. Comment puis-je supprimer le menu de l'activité Login?

Merci

+0

Cela peut-il être le résultat d'un héritage? (par exemple 'login de classe étend Main'). –

+0

c'est une question intelligente. Cependant, voici ma structure de classe: - MyAbstractActivity (classe de base), LoginActivity étend MyAbstractActivity, MainActivity étend MyAbstractActivity. Et je gonfle le menu dans la classe MainActivity. – Marco83

Répondre

1

Oooooops, mon mauvais. Le code du menu déroulant a été accidentellement copié et collé à l'activité de connexion quand je faisais face à un autre morceau de code :)

Désolé pour ce Merci pour le support !!

0

Je pense que vous n'avez pas besoin d'appeler startActivity de votre MainActivity pour aller à l'activité Connexion. Parce que la chaîne d'activité, suffirait à terminer l'appel depuis votre MainActivity.

+0

Je pense que c'est mieux comme Marco le fait. Bien sûr, salut devra terminer l'activité Login avant de commencer le Main. Sinon, l'utilisateur peut appuyer sur la touche Retour dans l'activité principale et découvrir qu'il est déconnecté, ce qui n'est pas bon. – Cristian

Questions connexes