Vorrei evitare che l'attività dei genitori venga distrutta ogni volta che ho fatto clic sul pulsante < nella barra delle azioni.
L'attività del genitore verrà messa in pausa dopo aver premuto quel pulsante, anziché essere distrutta.
c'è un modo per ignorarlo? e c'è un modo per scavalcare per tutte le attività?
Basta chiamare:
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setHomeButtonEnabled(true);
è necessario chiamare a attività che si desidera sovrascrivere il pulsante. Non c'è altra opzione per chiamarlo 'una volta per tutte'.
quale metodo viene chiamato da AppCompatActivity quando si preme quel pulsante?
Per impostazione predefinita, non esiste alcun metodo. Se si utilizza Toolbar
, chiamare setNavigationOnClickListener()
per fare qualcosa quando viene premuto quel pulsante.
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.
}
});
Se si utilizza ActionBar
, il pulsante sarà disponibile su Menu
:
@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);
}
fonte
2015-06-06 07:26:30
Se si imposta il listener di clic sulla barra degli strumenti, non verrà più restituito al genitore a meno che non si chiami qualcosa di equiv si riferisce a 'NavUtils.navigateUpFromSameTask' nel listener. –