2015-06-06 6 views
5

Ich möchte vermeiden, dass die Elternaktivität zerstört wird, wenn ich in der Aktionsleiste auf die Schaltfläche < klicke.Schaltfläche AUFWÄRTS in der Aktionsleiste überschreiben

Welche Methode wird von AppCompatActivity aufgerufen, wenn wir diese Schaltfläche drücken?

Gibt es eine Möglichkeit für mich, es zu überschreiben? und gibt es eine Möglichkeit, für alle Aktivitäten zu überschreiben?

Antwort

11

Ich möchte vermeiden, dass Elternaktivitäten zerstört werden, wenn ich in der Aktionsleiste auf < geklickt habe.

Ihre Elternaktivität wird pausiert, sobald Sie diese Schaltfläche drücken, anstatt zerstört wird.

Gibt es eine Möglichkeit für mich, sie zu überschreiben? und gibt es eine Möglichkeit, für alle Aktivitäten zu überschreiben?

Rufen Sie einfach:

getSupportActionBar().setDisplayHomeAsUpEnabled(true); 
    getSupportActionBar().setHomeButtonEnabled(true); 

Sie müssen es Aktivitäten rufen Sie die Taste außer Kraft setzen möchten. Es gibt keine andere Möglichkeit, es einmal für alle zu nennen.

Welche Methode wird von AppCompatActivity aufgerufen, wenn wir diese Schaltfläche drücken?

Standardmäßig ist keine Methode darin enthalten. Wenn Sie Toolbar verwenden, rufen Sie setNavigationOnClickListener() auf, um etwas zu tun, wenn diese Taste gedrückt wird.

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    return super.onCreateOptionsMenu(menu); 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    if (item.getItemId() == android.R.id.home) { 
     // do something here, such as start an Intent to the parent activity. 
    } 
    return super.onOptionsItemSelected(item); 
} 
+0

Wenn Sie den Klick-Listener auf der Symbolleiste festlegen, wird es nicht mehr zum übergeordneten Element zurückkehren, wenn Sie etwas Äquivalenz aufrufen "NavUtils.navigateUpFromSameTask" im Listener –

1

Für diejenigen, die für die Aufwärtstaste außer Kraft zu setzen suchen die gleichen wie Back-Button zu sein und von Aktivität navigieren Sie zu:

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
    setSupportActionBar(toolbar); 
    toolbar.setNavigationOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      // do something here, such as start an Intent to the parent activity. 
     } 
    }); 

Wenn Sie ActionBar verwenden, wird diese Taste auf Menu zur Verfügung ein anderes richtig, einfach außer Kraft setzen

Verwandte Themen