5

Ich habe eine ActionBar in meiner Android App (API Level 14). Es gibt einen Home-Button mit meinem App-Icon. In MainActivity schreibe ich einen kurzen Text in eine EditText View. Wenn ich zu PreferenceActivity navigiere, erhält das Symbol einen Pfeil, um mich zu signalisieren, ich kann zur Home Activity (MainActivity) navigieren.Android - Klicken Sie auf ActionBar App Symbol, erstellen Sie neue Aktivität Instanz

// PreferenceActivity-onCreate 
    ActionBar actionBar = getActionBar(); 
    actionBar.setDisplayHomeAsUpEnabled(true); 

ich auf diesem App-Icon in ActionBar zu MainActivity zurückzukehren

// PreferenceActivity 
@Override 
public boolean onOptionsItemSelected(MenuItem item) 
{ 
    switch (item.getItemId()) 
    { 
    case android.R.id.home: 
     Intent intent = new Intent(this, MainActivity.class); 
     intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
     startActivity(intent); 
     return true; 
    default: 
     return super.onOptionsItemSelected(item); 
    } 
} 

Jetzt wurde mein MainActivity erstellt wieder und der Text in EditText verschwunden ist. Ich dachte, ich kann die MainActivity mit der Intent.FLAG_ACTIVITY_CLEAR_TOP am Leben erhalten. Ich möchte ein Verhalten wie ich meine Return-Taste auf dem Gerät verwenden.

Antwort

7

Wenn Sie eine vorhandene Instanz von MainActivity zurückkehren möchten, müssen Sie dies tun:

intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP); 

Mit CLEAR_TOP allein bewirkt, dass eine neue Instanz von MainActivity geschaffen werden.

+0

Dieser Weg funktioniert nicht. Aber wenn ich 2 addFlags schreibe, funktioniert es gut. \t \t \t intent.addFlags (Intent.FLAG_ACTIVITY_CLEAR_TOP); \t \t \t intent.addFlags (Intent.FLAG_ACTIVITY_SINGLE_TOP); – Gepro

+0

Ah ... so leid, du brauchst ein einziges "|" und nicht "||" zwischen den 2 Flaggen. Mein Fehler. Sie möchten ein ** bitweises ** ODER, kein ** logisches ** ODER. Ich habe meine Antwort bearbeitet. –

+0

Richtig, ich muss bemerkt haben, dass – Gepro

Verwandte Themen