2015-05-30 33 views
7

ho un'attività che implementa OnClickListener, e io sono la gestione degli eventi onclick come sottostante Codice:barra degli strumenti Android pulsante di navigazione id

void onClick(View v){ 
final int id = v.getId(); 
switch(id){ 
    case R.id.xxx: 
    break; 
} 
} 

e ora ho una barra degli strumenti anche, quindi voglio gestire barra degli strumenti pulsante di navigazione click evento in questo modo anche:

toolbar.setNavigationOnClickListener(this); 

ma non so l'id del pulsante di navigazione barra degli strumenti. Come posso averlo?

+0

È possibile gestire i clic del menu della barra degli strumenti all'interno del metodo onOptionsItemSelected(). –

+0

puoi provare ad aggiungere sul metodo click direttamente alla barra degli strumenti anche quale può aiutarti, e per la tua situazione sopra per l'id del tasto home è android.R.id.home – Vickyexpert

+0

hai avuto una risposta appropriata a questo? Sto cercando di ottenere lo stesso – AndroidGuy

risposta

0

Se la barra degli strumenti viene utilizzata come barra delle azioni, l'ID della vista sarà android.R.id.home e si utilizzerà onOptionsItemSelected(...) per sapere quando viene premuto.

Se non viene utilizzato come barra delle azioni, l'ID della vista è -1, che non ha una risorsa id corrispondente definita.

Il che significa che è necessario utilizzare setNavigationOnClickListener() ma in uno dei due approcci:

sia:

toolbar.setNavigationOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      ... 
     } 
    }); 

o

private View.OnClickListener homeClickListener = new View.OnClickListener() { 
    @Override 
    public void onClick(View view) { 
     ... 
    } 
}; 

@Override 
protected void onCreate(...) { 
    ... 
    toolbar.setNavigationOnClickListener(homeClickListener); 
    ... 
} 
0

Basta stampare un registro per ottenere l'id, come: Log.w("ID: ", ""+v.getId()); Nel mio caso era -1 valore.

switch(id) 
{ 
    case -1: 
    break; 
} 
+0

Puoi spiegare il codice e le sue modifiche per renderlo utile ai futuri lettori? – LW001

+0

è l'ID del pulsante di navigazione della barra degli strumenti. Basta stampare un log per ottenere l'id, come: Log.w ("ID:", "" + v.getId()); – Adolfok3

+1

[modifica] per favore ... – LW001

Problemi correlati