В режиме доступности я хочу переопределить TalkBack для TextView - PullRequest
1 голос
/ 01 сентября 2011

В настоящее время у меня есть ListView, и каждый элемент этого списка состоит как минимум из двух TextView. Я добавляю доступ к своему приложению, поэтому, когда я сосредотачиваюсь на определенном элементе списка, он считывает текст в каждом TextView.

Прямо сейчас я отправляю ему событие TalkBack, но сразу после его завершения снова считывает TextView. Я хочу, чтобы он завершил только мое событие TalkBack и ничего больше.

Кто-нибудь знает, как это сделать?

Заранее спасибо!

1 Ответ

2 голосов
/ 01 декабря 2011

Конечно, просто переопределите View.dispatchPopulateAccessibilityEvent .

Из документа (выделено мной):

Типичная реализация вызовет onPopulateAccessibilityEvent (AccessibilityEvent) дляэто представление, а затем вызовите dispatchPopulateAccessibilityEvent (AccessibilityEvent) для каждого дочернего элемента. Переопределите этот метод, если требуется пользовательское заполнение текстового содержимого события.

С помощью этого метода вы можете добавить любой текст, который вы хотите, к событию следующим образом:

public boolean dispatchPopulateAccessibilityEvent(AccessibilityEvent event) {
    event.getText().add("Hey look!");
    return true;
}
...