Как активировать поле EditText в недавно добавленном элементе в RecyclerView?
У меня есть список предметов, RecyclerView в RecyclerView . Теперь эти элементы имеют в них вид EditText .
Я бы хотел активировать (установить фокус на) EditText элемента, когда он добавлен в первый раз. Как мне это сделать?
Чтобы определить релевантный вид, сохраните ссылку на вновь добавленный элемент в адаптере, и когда он будет привязан, вызовите view.requestFocus() (см. Документы).
Чтобы получить фокус и показать клавиатуру, вы должны написать что-то вроде этого:
Вы должны очистить фокус, если другой EditText получает фокус. Это можно сделать с помощью
Обратите внимание, что во всех представлениях EditText должен быть установлен их onFocusChangeListener тому же слушателю
Поле EditText не отображается
Пытаюсь сделать простое приложение для Android. Я использую андроид версии 2.3.3. Я использовал следующий код для отображения поля EditText в моем XML-файле:
Но EditText не отображается. Все остальные кнопки, текстовые представления и все остальное отображаются правильно, только EditText не отображается. Подскажите, пожалуйста, в чем проблема ??
-Заранее спасибо
задан 06 фев ’12, 03:02
Просто перезапустите Eclipse один раз. Может быть ошибка Eclipse. — Ghost
Пожалуйста, предоставьте полный код вашего xml файла. — Relsell
пожалуйста, вы можете опубликовать весь xml-код? Я думаю, что после очистки проекта он будет работать нормально. — naresh
Просто попробовал, не вышло 🙁 — Antrromet
@relsell просто проверьте, я разместил весь свой xml-файл. — Antrromet
3 ответы
пожалуйста, используйте это
Спасибо, это работает. На самом деле мой TextView был настроен на fill_parent, поэтому для EditText не осталось места. — Антрромет
Пожалуйста, добавьте пояснение к ответу. — Райан Пеллетье
Это случается, потому что текстовое представление имеет атрибут ширины как родительский / соответствующий родительскому элементу, так что текстовое представление заполняет (ширину) экрана, а затем текст редактирования выходит из видимой области. чтобы решить эту проблему, воспользуйтесь одним из следующих способов ..
установить ширину текстового просмотра как wrap_content или фиксированная ширина (например, 50dp). если вы использовали wrap_content, то снова текст редактирования может выходить за пределы видимой области, в зависимости от текста в текстовом представлении.
набор как текстовый просмотр, так и редактирование ширины текста as layout_width = «match_parent» и добавить еще один атрибут layout_weight = «1». теперь и текстовый просмотр, и редактируемый текст в равной степени разделяют ширину родительского элемента.
Редактирование текста в Xamarin.Android
В этом разделе вы будете использовать мини-приложение EditText для создания текстового поля для ввода данных пользователем. После ввода текста в поле клавиша ВВОД отобразит текст в всплывающем сообщении.
Откройте resources/layout/activity_main.axml и добавьте элемент EditText в содержащий макет. Следующий пример activity_main.axml содержит добавленный EditText в LinearLayout a:
В этом примере EditText кода атрибут android:imeOptions имеет значение actionGo . Этот параметр изменяет действие Done по умолчанию на действие Go , чтобы нажатие клавиши ВВОД активировало KeyPress обработчик ввода. (Как правило, используется для того, actionGo чтобы клавиша ВВОД перенацелила пользователя на целевой URL-адрес, введенный в.)
Чтобы обработать ввод текста пользователя, добавьте следующий код в конец метода OnCreate в Файле MainActivity.cs:
Кроме того, добавьте следующую using инструкцию в начало файла MainActivity.cs , если он еще не существует:
Этот пример кода увеличивает элемент EditText из макета и добавляет обработчик KeyPress , который определяет действие, выполняемое при нажатии клавиши, пока мини-приложение имеет фокус. В этом случае метод определяется для прослушивания клавиши ВВОД (при касании), а затем всплывающего сообщения с введенным текстом. Обратите внимание, что свойство Handled всегда должно быть true , если событие обработано. Это необходимо, чтобы предотвратить появление события (что приведет к возврату каретки в текстовом поле).
Запустите приложение и введите текст в текстовое поле. При нажатии клавиши ВВОД всплывающее уведомление будет отображаться, как показано справа:

Части этой страницы являются изменениями на основе работы, созданной и общей Project Android с открытым кодом и используемой в соответствии с условиями, описанными влицензии Attribution 2.5. Это руководство основано на учебнике по form Stuff дляAndroid.