2010-12-04 11 views
0

Ich glaube, ich habe den Activity Lifecycle auf Android verstanden, aber ich kann immer noch nicht verstehen, warum das folgende passiert.Android-Menü zwischen den Aktivitäten geteilt (unerwünscht)

  • Anmeldung Aktivität - Anmeldebildschirm
  • Haupttätigkeit - Hauptanwendungsschnittstelle

In Anmeldung Aktivität, verbinde ich zu einem Dienst die Login zu validieren. Wenn das Passwort korrekt ist, wechsle ich zu Hauptaktivität mit:

Es gibt kein Menü Optionen in Login-Aktivität. Ich habe eine Menü-Optionen in Haupttätigkeit, die ich mit aufblasen:

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

So weit so gut. Aber ich möchte, dass der Benutzer sich abmelden und zum Anmeldebildschirm zurückkehren kann. So in Haupttätigkeit habe ich eine Option im Menü, das ermöglicht, sich abzumelden:

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

Wenn ich das Menü-Taste drücken, zeigt die Anwendung erneut Aktivität Anmeldung. Aber wenn ich die MENÜ-Taste drücke, zeigt die Anwendung das Menü aus Hauptaktivität an, auch wenn es nicht sichtbar ist.

Wenn ich zurück zum Home-Bildschirm gehe (HOME drücke) und nach einiger Zeit wieder aktiv bin, zeigt die Anwendung die Login-Aktivität an, aber wenn ich die MENÜ-Taste drücke, wird das Hauptanwendungsmenü angezeigt.

Wie entferne ich das Menü von der Login-Aktivität?

Dank

+0

Könnte es ein Ergebnis der Vererbung sein? (z.B. 'class Login erweitert Main'). –

+0

das ist eine kluge Frage. Hier ist jedoch meine Klassenstruktur: - MyAbstractActivity (Basisklasse), LoginActivity erweitert MyAbstractActivity, MainActivity erweitert MyAbstractActivity. Und ich blase das Menü in der MainActivity-Klasse auf. – Marco83

Antwort

1

Oooooops, mein Schlechter. Der aufgeblähte Menücode wurde versehentlich kopiert und in die Login-Aktivität eingefügt, als ich ein anderes Stück Code bearbeitet habe :)

Entschuldigung, Danke trotzdem für die Unterstützung !!

0

Ich glaube, Sie startActivity von Ihrem MainActivity nicht aufrufen müssen, um zum Login-Aktivität zu gehen. Weil die Activity-Kette ausreichen würde, um den Aufruf von MainActivity abzuschließen.

+0

Ich denke, es ist besser, wie Marco es macht. Natürlich muss hi die Login-Aktivität beenden, bevor Sie mit dem Main beginnen. Andernfalls könnte der Benutzer die Zurück-Taste in der Hauptaktivität drücken und herausfinden, dass er ausgeloggt ist, was nicht gut ist. – Cristian

Verwandte Themen