2016-06-29 10 views
0
@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if ((keyCode == KeyEvent.KEYCODE_BACK) && web_view().canGoBack()) { 
     web_view().goBack(); 
     return true; 
    } 
    return super.onKeyDown(keyCode, event); 
} 

Ich habe diesen Code und die Änderung der return true zu return false hat den gleichen Effekt. Kann jemand erklären warum?Gleiche Ausgabe im Gegenzug wahr und Rückgabe false?

+0

Welchen Effekt erwarten Sie genau? Das heißt, was funktioniert nicht? –

+0

@MikeM. Alles funktioniert gut, ich frage mich nur, warum das Ändern des 'return' von' true' nach 'false' und umgekehrt den gleichen Effekt hat ... – Chunrand

+0

Wenn Sie nur googlen, bevor Sie hier fragen, wird es Ihnen mehr helfen! –

Antwort

4

Vom View#onKeyDown docs,

Returns
boolean Wenn Sie das Ereignis behandelt, return true. Wenn Sie zulassen möchten, dass das Ereignis vom nächsten Empfänger verarbeitet wird, geben Sie false zurück.

Die return true/return false betrifft Sie hier nicht. Es betrifft den nächsten Empfänger des Ereignisses. Wenn Sie true zurückgeben, wird das Ereignis nicht an den nächsten potenziellen onKeyDown-Empfänger weitergegeben.

+0

Nicht nur das nächste 'onKeyDown', irgendein Empfänger, wie' onClick'. – earthw0rmjim

+0

@ user13 'onClick' gibt keinen Wert zurück. – Rohan

+1

@Rohan tut es tatsächlich nicht. Damit? – earthw0rmjim