2015-06-06 18 views
5

Vorrei evitare che l'attività dei genitori venga distrutta ogni volta che ho fatto clic sul pulsante < nella barra delle azioni.Ignora pulsante SU nella barra delle azioni

quale metodo viene chiamato da AppCompatActivity quando si preme quel pulsante?

c'è un modo per ignorarlo? e c'è un modo per scavalcare per tutte le attività?

risposta

11

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); 
} 
+0

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. –

1

Per coloro che sono alla ricerca di ignorare il pulsante su per per essere lo stesso pulsante indietro e passare da un'attività a un altro correttamente, semplicemente sovrascrivi

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    int id = item.getItemId(); 
    if (id == android.R.id.home){ 
     onBackPressed(); 
     return true; 
    } 
    return super.onOptionsItemSelected(item); 
} 
Problemi correlati