In general, you should send an AccessibilityEvent whenever the content of your custom view changes. For example, if you are implementing a custom slider bar that allows a user to select a numeric value by pressing the left or right arrows, your custom view should emit an event of type TYPE_VIEW_TEXT_CHANGED whenever the slider value changes. Which one of the following sample codes demonstrates the use of the sendAccessibilityEvent() method to report this event.
- override fun dispatchPopulateAccessibilityEvent(event: AccessibilityEvent): Boolean {
return super.dispatchPopulateAccessibilityEvent(event).let { completed ->
if (text?.isNotEmpty() == true) {
event.text.add(text)
true
} else {
completed
}
}
} - override fun onKeyUp(keyCode: Int, event: KeyEvent): Boolean {
return when(keyCode) {
KeyEvent.KEYCODE_DPAD_LEFT -> {
currentValue--
sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_TEXT_CHANGED)
true
}
...
}
} - override fun onKeyUp(keyCode: Int, event: KeyEvent): Boolean {
return when(keyCode) {
KeyEvent.KEYCODE_ENTER -> {
currentValue--
sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_CONTEXT_CLICKED)
true
}
...
}
}
Answer(s): B
Reference:
https://developer.android.com/guide/topics/ui/accessibility/custom-views
Reveal Solution Next Question