У меня есть EditText, который не должен позволять пользователю вводить что-либо через клавиатуру (мягкую или жесткую). Этот EditText должен позволять пользователю вводить что-либо через клавиши (кнопки), отображаемые на экране приложением. Я отключил мягкую клавиатуру, но я не могу найти способ отключить ввод аппаратной клавиатуры. Этот ввод через аппаратную клавиатуру можно выполнить с помощью эмулятора, который настроен на вход через аппаратную клавиатуру. Итак, мой вопрос: как заблокировать вход через физическую клавиатуру в EditText? Спасибо!Блокировка ввода физической клавиатуры в EditText
ответ
Наконец-то получил!
Код:
editText.setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
return true;
}
});
Объяснение:
Возвращение верно будет сказать слушателю, что я уже обработал ввод аппаратной клавиатуры. На основе Android документации (http://developer.android.com/reference/android/view/View.OnKeyListener.html)
View.OnKeyListener: Определение интерфейса для обратного вызова, которая будет вызвана при аппаратного ключ событие отправляется с этой точкой зрения. Обратный вызов будет вызван до того, как ключевое событие будет передано в представление. Это полезно только для аппаратных средств ; метод ввода программного обеспечения не обязан инициировать этот слушатель.
OnKey (View v, внутр KEYCODE, KeyEvent событие) Вызывается, когда аппаратный ключ отправляется на вид.
Это работает, но, к сожалению, перехватывает даже навигационные нажатия клавиш, когда поле фокусируется. Поэтому, если пользователь использует аппаратную клавиатуру для навигации, они застревают в поле. –
Привет @ damien5314 для моего дела работал отлично, потому что пользователь не должен использовать аппаратную или мягкую клавиатуру для взаимодействия с этим полем специально. Вы должны оценить, является ли это вашим делом. –
Вы можете попробовать их в соответствии с тем, что вы хотите в вашем XML макет
android:longClickable="false"
android:clickable="false"
android:cursorVisible="false"
android:editable="false"
Затем сделать EditText показать, что пользователь вводит с помощью клавиатуры вы сделали в приложении.
Спасибо за ваш ответ! К сожалению, это не сработало. =/ Я также пытался избежать первоначального сосредоточения на этом edittext, но если я начну вводить что-либо на моей клавиатуре, поле начинает заполняться. –
- 1. блокировка клавиатуры Android EditText
- 2. Блокировка ввода с клавиатуры HID
- 3. Android Emulator - наличие сенсорного ввода клавиатуры при использовании физической клавиатуры?
- 4. для Windows 8.1 Работа с физической клавиатуры ввода
- 5. HTML5; обнаружить присутствие физической клавиатуры в Javascript
- 6. Блокировка клавиатуры UITableViewCell's UITextField?
- 7. Flash + Chrome = блокировка клавиатуры?
- 8. Использование пользовательской клавиатуры для ввода и обработки данных в EditText
- 9. Как сделать edittext выше мягкой клавиатуры ввода в Android?
- 10. Android ListActivity ArrayAdapter фильтрация без физической клавиатуры?
- 11. Android: Блокировка ключей от виртуальной клавиатуры
- 12. Сокращение клавиатуры EditText
- 13. EditText не показывает клавиатуры
- 14. Блокировка ввода в Java
- 15. NumberPicker стиль клавиатуры в пользовательских EditText
- 16. Выделите текст в EditText при открытии клавиатуры
- 17. Ошибка ввода клавиатуры
- 18. Изменение размера EditText при использовании «setText» вместо ввода клавиатуры
- 19. Изменение цвета EditText с помощью ввода с клавиатуры
- 20. Ошибка клавиатуры «del» клавиатуры в EditText на виджете галереи
- 21. Поля EditText, показывающие разные клавиатуры
- 22. Причина медленного ввода мягкой клавиатуры в android
- 23. Edittext стиль не открытие клавиатуры
- 24. EditText внутри дисплея клавиатуры Scrollview
- 25. Скрытие клавиатуры Android для EditText
- 26. Наложение перекрытий клавиатуры на EditText
- 27. LinkedBlockingQueue - неограниченный - блокировка ввода?
- 28. Блокировка ввода-вывода в Python
- 29. Блокировка элементов ввода в Firefox
- 30. Блокировка ввода-вывода в Akka
TextView? Разве вы не имеете в виду EditText? –
Зачем использовать «EditText» в первую очередь, если пользователь не может его использовать? – CommonsWare
Извините за TextView, не знаю, что я имел в виду, когда впервые написал это, исправлено. @CommonsWare пользователь может использовать его, разница в том, как производится ввод. Это не сделано с помощью мягкой клавиатуры, она создается некоторыми клавишами, которые приложение отображает на экране. –