Save the date! Android Dev Summit is coming to Mountain View, CA on November 7-8, 2018.
added in API level 5

KeyEvent.DispatcherState

public static class KeyEvent.DispatcherState
extends Object

java.lang.Object
   ↳ android.view.KeyEvent.DispatcherState


Use with KeyEvent.dispatch(Callback, DispatcherState, Object) for more advanced key dispatching, such as long presses.

Summary

Public constructors

KeyEvent.DispatcherState()

Public methods

void handleUpEvent(KeyEvent event)

Handle key up event to stop tracking.

boolean isTracking(KeyEvent event)

Return true if the key event is for a key code that is currently being tracked by the dispatcher.

void performedLongPress(KeyEvent event)

Keep track of the given event's key code as having performed an action with a long press, so no action should occur on the up.

void reset(Object target)

Stop any tracking associated with this target.

void reset()

Reset back to initial state.

void startTracking(KeyEvent event, Object target)

Start tracking the key code associated with the given event.

Inherited methods

Public constructors

KeyEvent.DispatcherState

added in API level 5
public KeyEvent.DispatcherState ()

Public methods

handleUpEvent

added in API level 5
public void handleUpEvent (KeyEvent event)

Handle key up event to stop tracking. This resets the dispatcher state, and updates the key event state based on it.

This is only needed if you are directly dispatching events, rather than handling them in KeyEvent.Callback.onKeyUp(int, KeyEvent).

Parameters
event KeyEvent

isTracking

added in API level 5
public boolean isTracking (KeyEvent event)

Return true if the key event is for a key code that is currently being tracked by the dispatcher.

Parameters
event KeyEvent

Returns
boolean

performedLongPress

added in API level 5
public void performedLongPress (KeyEvent event)

Keep track of the given event's key code as having performed an action with a long press, so no action should occur on the up.

This is only needed if you are directly dispatching events, rather than handling them in KeyEvent.Callback.onKeyLongPress(int, KeyEvent).

Parameters
event KeyEvent

reset

added in API level 5
public void reset (Object target)

Stop any tracking associated with this target.

Parameters
target Object

reset

added in API level 5
public void reset ()

Reset back to initial state.

startTracking

added in API level 5
public void startTracking (KeyEvent event, 
                Object target)

Start tracking the key code associated with the given event. This can only be called on a key down. It will allow you to see any long press associated with the key, and will result in KeyEvent.isTracking() return true on the long press and up events.

This is only needed if you are directly dispatching events, rather than handling them in KeyEvent.Callback.onKeyDown(int, KeyEvent).

Parameters
event KeyEvent

target Object