[prg] направить текст в talkback и отловить нажатие ввод на вирт. клавиотуре
здравствуйте.
задача такова:
сделать под android что-то вроде удалённого терминала:
textView, EditText и кнопка
когда от удалённого сервера приходит сообщение, оно добавляется к TextView
когда нажимают кнопку, содержимое редактора идёт на сервер, редактор
очищается.
это всё реализовать не проблема, но хотелось бы ещё следующего:
1. когда приходит новый фрагмент текста, его нужно передать в talkback
так, чтобы он был немедленно произнесён, не выводя на скрин
дополнительных элементов типа всплывающих окон.
2. когда на вирт. клаве нажимают ввод, совершить действие, эквивалентное
кнопке
пишу в xamarin android на C#, но, так как android api везде один, если
можете предоставить примеры на java, буду только рад.
заранее спасибо за ответ.
Здравствуйте, Илья Пащук.
У view есть метод announceForAccessibility(), при отправке текста в который
TalkBack произносит этот текст вне зависимо от фокуса. То есть вам при
выводе текста надо отрисовывать его в интерфейс, а также одновременно
отправлять в announceForAccessibility(), и тогда вы получите желаемый
эффект.
Для начала полю редактирования надо установить атрибут
android:imeOptions="actionDone"
Это будет выводить виртуальную кнопку "Готово". Ну и обработчик этой кнопки
выглядит примерно так:
editText.setOnEditorActionListener(new EditText.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
if((event != null && (event.getKeyCode() == KeyEvent.KEYCODE_ENTER)) ||
(actionId == EditorInfo.IME_ACTION_DONE)) {
// Действия, выполняемые при нажатии
}
return false;
}
});
Успехов. Никита.