Как вызвать клавиатуру на Android

Обновлено: 21.11.2024

В большинстве случаев, когда необходима клавиатура, она появляется автоматически. Однако я пытаюсь играть в Dungeon Crawl Stone Soup Webtiles на своем планшете, и клавиатура не появляется. Есть ли способ поднять его вручную? У меня Nexus 7, запущен Jelly Bean. В идеале должно быть что-то, что не отображается в строке состояния, а находится в панели уведомлений, и я могу нажать на это, чтобы вызвать клавиатуру.

На самом деле, даже лучше было бы что-то внизу, рядом с элементами управления навигацией, но я не верю, что это возможно без модификации фреймворка.

На некоторых моих устройствах при длительном нажатии клавиши меню открывается экранная клавиатура. Я не знаком с Nexus 7, поэтому не могу сказать, работает ли он там.

Боялся этого -- как говорили до ICS, "снимут ключи". Вот почему я не поместил это как ответ, но подумал, что предложение не повредит. Хорошо, извините за это. У меня нет ИКС. Надеюсь, кто-то еще знает решение.

В какой-то момент я слышал что-то о «хакерской клавиатуре», в которой была эта функция, но сейчас я не могу ее найти, и я бы предпочел что-то, что работало бы на любой клавиатуре. Это не должно быть слишком сложно, просто нужно передать фреймворку любой триггер, вызывающий всплывающую клавиатуру.

4 ответа 4

Как я вижу, альтернативная клавиатура может решить вашу проблему, и это кажется приемлемым решением, и вы даже упомянули что-то, чего не можете найти — настоящим я с гордостью представляю:

Вы можете настроить используемый для этого жест в меню настроек клавиатуры "Жесты и действия клавиш". Если действие смахивания слишком сложно запустить, попробуйте связать действие «закрыть клавиатуру» с аппаратной клавишей «Уменьшение громкости». Это не помешает нормальному использованию кнопки громкости, когда клавиатура закрыта.

Хотя это относится к «закрыть»: если есть жесты, которые вы можете настроить, они также могут иметь один и для «открытия». Часто задаваемые вопросы могут раскрыть некоторые дополнительные подсказки.

SaintWacko отмечает в комментариях:

Чтобы открыть его где угодно, зайдите в настройки клавиатуры и установите флажок «Постоянное уведомление». Затем он сохранит запись в уведомлениях, которую вы можете нажать, чтобы вызвать клавиатуру в любой момент.

Таким образом, это была бы альтернативная возможность - крючок был бы подключен к этой специальной клавиатуре.

Кроме того, как переключаться между вашими любимыми клавиатурами Android

Молли К. Маклафлин пишет о технологиях с 2004 года. Ее работы публиковались на многих технических сайтах в Интернете, включая PCMag, Dealnews, Wirecutter и многие другие.

Райан Периан — сертифицированный ИТ-специалист, обладатель множества сертификатов в области ИТ и более 12 лет опыта работы на должностях поддержки и управления в сфере ИТ.

Что нужно знать

  • Выберите «Настройки» > «Система» > «Языки и ввод». Нажмите Виртуальная клавиатура и выберите клавиатуру.
  • Вы можете переключаться между клавиатурами, выбирая значок клавиатуры в нижней части большинства приложений клавиатуры.

В этой статье рассказывается, как изменить клавиатуру по умолчанию на Android и как переключаться между клавиатурами. Приведенные ниже инструкции относятся к смартфонам с Android 10, 9.0 (Pie) или 8.0 (Oreo) и должны работать независимо от производителя вашего телефона Android: Samsung, Google, Huawei, Xiaomi и т. д.

Как изменить клавиатуру по умолчанию

После загрузки клавиатуры Android (или даже нескольких) запустите ее, чтобы завершить установку. Большинство приложений помогут вам включить клавиатуру и установить ее по умолчанию, но это также легко сделать вручную.

Перейти к настройкам.

Прокрутите вниз и нажмите Система > Языки и ввод. (На смартфонах Samsung Galaxy выберите «Настройки» > «Общие настройки» > «Язык и ввод».)

В разделе "Клавиатуры" нажмите Виртуальная клавиатура. (На Samsung нажмите Экранная клавиатура, затем нажмите клавиатуру по умолчанию.)

Нажмите "Управление клавиатурами".

Включите переключатель рядом с нужной клавиатурой. На телефоне Samsung включите кнопку «Показать клавиатуру», если хотите легко переключаться между клавиатурами.

Когда вы включаете клавиатуру, может появиться предупреждение о том, что она может собирать вводимый вами текст, включая личную информацию. Коснитесь ОК. Приложения собирают эту информацию для автоматического исправления, чтобы предсказать, что вы собираетесь напечатать. Для этого приложение может хранить электронные письма, текстовые сообщения, поисковые запросы в Интернете и пароли.

Как переключаться между клавиатурами Android

Android не ограничивает количество загружаемых пользователями приложений для клавиатуры. Если у вас есть более одной клавиатуры, которую вы хотите использовать; легко переключаться между ними по мере необходимости. Например, у вас может быть клавиатура, которую вы предпочитаете для работы, другую для друзей, третью для глупых GIF-файлов и, возможно, одну на другом языке. В некоторых сценариях вы также можете предпочесть голосовой ввод, т. е. речь, а не текст.

Запустите приложение, которое вы хотите ввести.

Нажмите, чтобы отобразить клавиатуру.

Нажмите значок клавиатуры в правом нижнем углу.

Выберите клавиатуру из списка.

Повторите эти шаги, чтобы переключиться на другую клавиатуру.

Просмотр разрешений клавиатуры Android

Чтобы узнать, какие разрешения вы предоставили приложению клавиатуры, выберите "Настройки" > "Приложения и уведомления". Нажмите Просмотреть все приложения и выберите приложение клавиатуры из списка. Посмотрите в разделе «Разрешения»: если указано, что разрешения не предоставлены, вам больше ничего не нужно делать. В противном случае вы увидите число. Нажмите «Разрешения», чтобы увидеть, какие из них разрешены, а какие запрещены.

Вы можете узнать больше о том, что собирает приложение, посетив список Google Play Store или веб-сайт компании.

Экранная клавиатура появляется в нижней части сенсорного экрана всякий раз, когда ваш телефон Android требует ввода текста. На изображении ниже показана типичная клавиатура Android, которая называется клавиатурой Google. В вашем телефоне может использоваться та же клавиатура или несколько вариантов, которые выглядят немного иначе. Все экранные клавиатуры основаны на традиционной раскладке QWERTY, а не на чем-то, что предназначено только для того, чтобы отмечать вас.

Здесь экранная клавиатура отображается в алфавитном режиме. Вы видите ключи от A до Z в нижнем регистре. Вы также видите клавишу Shift для создания заглавных букв и клавишу Delete для возврата и стирания.

Кнопка возврата меняет свой вид в зависимости от того, что вы печатаете. На вашей клавиатуре эти варианты могут отображаться графически или путем маркировки клавиши текстом. Вот что делает каждый из них:

Return: так же, как клавиша Return или Enter на клавиатуре компьютера, эта клавиша завершает абзац текста. Он используется в основном при заполнении длинных отрезков текста или когда требуется многострочный ввод.

Перейти: эта клавиша действия указывает приложению выполнить запрос, принять ввод или выполнить другое действие.

Поиск. Вы видите кнопку поиска, когда что-то ищете. Нажмите клавишу, чтобы начать поиск.

Далее: эта клавиша появляется, когда вы вводите информацию в несколько полей. Нажмите эту клавишу, чтобы переключиться с одного поля на другое, например, при вводе имени пользователя и пароля.

Готово: эта клавиша появляется всякий раз, когда вы закончили вводить текст в финальное поле и готовы отправить ввод.

Чтобы отобразить экранную клавиатуру, коснитесь любого текстового поля или места на экране, где разрешен ввод текста.

Чтобы закрыть экранную клавиатуру, коснитесь значка "Назад".

На некоторых экранных клавиатурах есть многофункциональная клавиша. Он может быть помечен значком настроек (шестеренка), значком микрофона или другим значком. Нажмите и удерживайте многофункциональную клавишу, чтобы просмотреть ее параметры.

Клавиатура меняет ориентацию при повороте телефона. Горизонтальная ориентация экранной клавиатуры широкая, поэтому вам может быть удобнее ее использовать.

Некоторые старые телефоны Android оснащены физической клавиатурой. Если вы хотите использовать этот тип клавиатуры со своим телефоном, подумайте о приобретении клавиатуры Bluetooth. Модели, доступные для планшетов, также работают на телефонах Android.

Джо Федева

Джо Федева
штатный писатель

Джо Федева — штатный автор How-To Geek. Он освещает потребительские технологии более десяти лет и ранее работал редактором новостей в XDA Developers. Джо любит все, что связано с технологиями, а также в глубине души заядлый любитель делать что-то своими руками. Он написал тысячи статей, сотни руководств и десятки обзоров. Подробнее.

На Android доступно больше клавиатурных приложений, чем вы хотели бы попробовать, но мы рекомендуем попробовать хотя бы несколько из них для размера.Когда вы это сделаете, вам нужно будет сделать ее предпочитаемой клавиатурой. Мы покажем вам, как это сделать.

Как и многие другие вещи в мире Android, этот процесс будет немного отличаться в зависимости от вашего устройства. Мы покажем вам, как это сделать на телефоне Google Pixel, максимально приближенном к базовому Android, и на телефоне Samsung Galaxy.

Прежде чем мы начнем, убедитесь, что вы загрузили приложение для клавиатуры из Play Маркета. Многие из них проведут вас через процесс замены клавиатуры. Если нет, выполните следующие действия для своего устройства.

Измените клавиатуру на телефоне Samsung Galaxy

Сначала проведите по экрану сверху вниз, чтобы открыть плитки быстрых настроек. Нажмите на значок шестеренки, чтобы открыть настройки.

Далее перейдите в «Общее управление».

Выберите «Список клавиатур и по умолчанию».

В верхней части экрана коснитесь "Клавиатура по умолчанию" и выберите нужную клавиатуру.

Теперь, когда вы перейдете к предыдущему экрану, вы увидите, где можно изменить настройки клавиатуры.

Вот оно! Ваша клавиатура теперь будет выбранным вами приложением. Вы можете использовать эти шаги, когда захотите изменить приложение.

Измените клавиатуру на телефоне Google Pixel

Чтобы изменить клавиатуру на Google Pixel, просто введите текстовое поле, чтобы отобразить текущую клавиатуру. Коснитесь значка клавиатуры на панели навигации.

Теперь выберите приложение клавиатуры, которое вы хотите использовать вместо этого.

Чтобы найти настройки клавиатуры, дважды проведите сверху вниз по экрану и коснитесь значка шестеренки.

Прокрутите вниз до пункта «Система».

Выберите «Языки и ввод» вверху.

Теперь нажмите «Экранная клавиатура».

Здесь вы можете открыть настройки для каждого установленного вами приложения клавиатуры.

Это все, что нужно для смены клавиатуры на устройствах Android. Это одно из самых больших изменений, которые вы можете внести, чтобы улучшить работу со смартфоном. У Android есть много таких возможностей.

  • › Как настроить высоту Gboard на Android
  • › Как создавать мэшапы эмодзи с помощью Gboard
  • › Как отключить вибрацию клавиатуры на Android
  • › Как добавить слово или фразу в словарь автозамены Android
  • › Как печатать своим голосом на Android
  • › Как получить доступ к буферу обмена на Android
  • › Как восстановить метки панели задач в Windows 11
  • ›5 шрифтов, которые следует прекратить использовать (и лучшие альтернативы)

Я показываю поле ввода с помощью AlertDialog . EditText внутри самого диалога автоматически фокусируется, когда я вызываю AlertDialog.show() , но программная клавиатура не отображается автоматически.

Как сделать, чтобы виртуальная клавиатура автоматически отображалась при отображении диалогового окна? (и нет физической/аппаратной клавиатуры). Подобно тому, как когда я нажимаю кнопку "Поиск", чтобы вызвать глобальный поиск, автоматически отображается виртуальная клавиатура.

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

29 ответов 29

Вы можете создать прослушиватель фокуса для EditText в AlertDialog, а затем получить окно AlertDialog. Оттуда вы можете сделать так, чтобы программная клавиатура отображалась, вызвав setSoftInputMode .

Как мне это сделать с помощью AlertDialog.Builder? . окончательный AlertDialog.Builder alert = новый AlertDialog.Builder(Main.this);

@Stephen, вы можете получить диалоговое окно от построителя, используя final AlertDialog dialog = builder.create(), а затем отобразить его в диалоговом окне вместо построителя.

Я ОТКАЗЫВАЮ СВОЙ КОММЕНТАРИЙ ВЫШЕ. Я обнаружил, что если вы не можете правильно настроить фокус, взгляните на свой XML! Если вы видите там тег - удалите его. Похоже, что тег передаст фокус EditText, и тогда ваш слушатель не будет запущен, поскольку EditText уже имеет фокус.

Как этого не сделать, если в устройстве есть аппаратная клавиатура? Похоже, это раздражает этих пользователей.

Я действительно не понимаю, почему это не поведение по умолчанию в SDK. Если представление, которое требует ввода текста, показывает мигающий курсор, почему кто-то не хочет видеть клавиатуру для ввода текста? Мне кажется, что UX неправильный.

Для показа использования клавиатуры:

Чтобы скрыть использование клавиатуры:

Это особенно хорошо работает, когда вы хотите показать/скрыть виртуальную клавиатуру на основе переключения видимости представления в макете между ВИДИМОЕ и ИСКЛЮЧЕННОЕ.

Вместо этого я бы предложил использовать флаг SHOW_IMPLICIT, так как это означает, что изменение действия или приложения автоматически скроет клавиатуру, как и ожидалось.

@drspaceboo Использование SHOW_IMPLICIT у меня вообще не работает, я должен использовать SHOW_FORCED, не знаю почему.

Когда следует запускать приведенный выше код? Я попытался сделать это вскоре после добавления моего макета к его родителю. Это не сработало. Но если я сделал это после того, как макет уже некоторое время существовал, это сработало. Так есть ли обратный вызов, который скажет мне: «Если вы попытаетесь показать клавиатуру сейчас, она действительно сработает»?

toggleSoftInput(InputMethodManager.SHOW_FORCED,0) включает виртуальную клавиатуру. Если вы хотите, чтобы клавиатура отображалась, вы можете вместо этого использовать imm.showSoftInput( view, InputMethodManager.SHOW_IMPLICIT ), где view — это представление, которое получит ввод.

Вы можете запросить программную клавиатуру сразу после создания диалога (тест на SDK - r20)

Если вам интересно, этот метод не открывает программную клавиатуру, когда подключена аппаратная клавиатура. Я только что проверил с кабелем USB On-The-Go. Идеально!

У меня была такая же проблема, и я решил ее с помощью следующего кода. Я не уверен, как он будет вести себя на телефоне с аппаратной клавиатурой.

Большое спасибо, приятель, это было здорово, на самом деле я использовал их оба для решения своей проблемы, у меня была ситуация, когда, если пользователь находится в режиме добавления, тогда нужно показывать клавиатуру при начале активности, а для режима обновления нет клавиатура требовалась по умолчанию. Итак, в манифесте для активности я устанавливаю stateHidden, и когда я обнаруживаю, что пользователь создает новый элемент, я отображаю клавиатуру, используя указанную вами строку кода. :) Еще раз спасибо.

Я получаю сообщение "не удается разрешить getWindow()". Я пытался поставить «это». и другие вещи до этого. я хочу получить клавиатуру без использования текста редактирования, просто щелкнув в определенной части экрана.

Фрагменты кода из других ответов работают, но не всегда очевидно, где их разместить в коде, особенно если вы используете AlertDialog.Builder и следовали официальному руководству по диалоговым окнам, поскольку оно не использует окончательный AlertDialog . или alertDialog.show() .

Предпочтительнее

Поскольку SOFT_INPUT_STATE_ALWAYS_VISIBLE будет скрывать клавиатуру, если фокус переключается с EditText, где SHOW_FORCED будет отображать клавиатуру до тех пор, пока она не будет явно закрыта, даже если пользователь вернется на главный экран или отобразит последние приложения.

Ниже приведен рабочий код для AlertDialog, созданного с использованием пользовательского макета с EditText, определенным в XML. Он также устанавливает на клавиатуре клавишу «Перейти» и позволяет активировать кнопку «Положительно».

Я знаю, что этот вопрос устарел, потому что я думаю, что использование функции расширения — более красивый способ показать клавиатуру для редактирования текста

вот метод, который я использую, чтобы показать клавиатуру для текста редактирования.

код kotlin: просто нужно вызвать edittext.showKeyboard()

код Java:

Ну, это довольно старый пост, все же есть что добавить.
Это 2 простых метода, которые помогают мне держать клавиатуру под контролем, и они работают просто идеально:

Показать клавиатуру

Скрыть клавиатуру

Позвольте мне указать дополнительную информацию о решении yuku, потому что мне было трудно заставить это работать! Как получить объект AlertDialog из моего AlertDialog.Builder? Ну, это результат моего выполнения alert.show():

Посмотрите на это обсуждение, в котором рассматривается скрытие и отображение IME вручную. Однако я чувствую, что если сфокусированный EditText не вызывает IME, это связано с тем, что вы вызываете AlertDialog.show() в своем OnCreate() или каком-либо другом методе, который вызывается до фактического представления экрана. Я считаю, что в этом случае перемещение его в OnPostResume() должно исправить это.

Да, вы можете использовать setOnFocusChangeListener, это вам поможет.

Если кто-то получает:

Невозможно сделать статическую ссылку на нестатический метод getSystemService(String) из типа Activity

Попробуйте добавить контекст к вызову getSystemService.

Кажется, проблема заключается в том, что, поскольку место, где вы вводите текст, изначально скрыто (или вложено или что-то в этом роде), AlertDialog автоматически устанавливает флаг WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM или WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE, чтобы ничего не срабатывало. мягкий ввод для отображения.

Чтобы это исправить, нужно добавить следующее:

просто добавьте эту строку в файл манифеста о необходимой активности.

После того, как я проголосовал за этот ответ, и было слишком поздно менять свой голос, я обнаружил, что он не работает для меня во всех случаях.

Первоначальный вопрос касается диалогов, и мой EditText находится в обычном режиме. В любом случае, я подозреваю, что это должно сработать и для большинства из вас. Итак, вот что работает для меня (предложенный выше метод с наивысшим рейтингом ничего не сделал для меня). Вот пользовательский EditView, который делает это (подклассы не нужны, но я нашел это удобным для своих целей, так как я хотел также захватить фокус, когда представление становится видимым).

Это фактически то же самое, что и ответ Tidbecks. На самом деле я вообще не заметил его ответа, так как у него было ноль голосов. Тогда я собирался просто прокомментировать его пост, но это было бы слишком долго, поэтому я все равно закончил этот пост. Тидбек отмечает, что не знает, как это работает с устройствами с клавиатурой. Я могу подтвердить, что поведение в обоих случаях одинаково. Это связано с тем, что в портретном режиме программная клавиатура появляется, а в ландшафтном - нет. На моем телефоне не имеет значения, выдвинута физическая клавиатура или нет.

Читайте также: