There are three onkey events in the listview source code of Android: onkeydown, onkeyup, and onkeymultiple, all of which are processed by the commonkey method.
In the commonkey method, only local processing is overwritten for action_down, that is, only onkeydown is processed. The other two are processed by submitting them to the onkey method of the parent class.
For listview, the onkey event call path is divided by the key type as follows:
Action_down:
Keycode_dpad_center, keycode_enter, keycode_space:
Onkeydown (listview. Java)-> commonkey (listview. Java)
Keycode_dpad_up, keycode_dpad_down, keycode_dpad_left, and keycode_dpad_right:
Onkeydown (listview. Java)-> commonkey (listview. Java)
Keycode_back:
Onkeydown (listview. java)-> commonkey (listview. java)-> sendtotextfilter (abslistview. java)-> determines whether to call onkeydown (view. java) [Note: onkeydown (view. java) does not process the keycode_back code. Therefore, false is returned]
Action_up:
Keycode_dpad_center, keycode_enter, keycode_space:
Onkeyup (listview. java)-> commonkey (listview. java)-> sendtotextfilter (abslistview. java) [Note: simply return false]-> onkeyup (abslistview. java)-> onkeyup (view. java)
Keycode_dpad_up, keycode_dpad_down, keycode_dpad_left, and keycode_dpad_right:
Onkeyup (listview. java)-> commonkey (listview. java)-> sendtotextfilter (abslistview. java) [Note: simply return false]-> onkeyup (abslistview. java)-> onkeyup (view. java) [Note: onkeyup (abslistview. java) and onkeyup (view. java) does not process code for keycode_dpad_up, keycode_dpad_down, keycode_dpad_left, and keycode_dpad_right. Therefore, false is returned]
Keycode_back:
Onkeyup (listview. java)-> commonkey (listview. java)-> sendtotextfilter (abslistview. java)-> determines whether to call onkeyup (view. java) [Note: onkeyup (view. java) does not process the keycode_back code. Therefore, false is returned]
Action_multiple:
Action_multiple refers to multiple consecutive recurring events, which can be divided into multiple above action_down and action_up.