Установка и настройка Hacker's Keyboard - удобной экранной клавиатуры для Android. Клавиатура умолчанию на Андроиде: как настроить Чтобы выполнить сброс, сделайте вот что

Наверняка вы слышали об играх, которые перекочевали на мобильную платформу Android прямо с ПК. Например, одна из самых популярных игр в мире GTA. Самое интересное, что в ней поддерживаются те же чит-коды, что и в версии для ПК. Но тут есть один важный момент: если на ПК мы можем набрать код с помощью клавиатуры, то где взять клавиатуру для Android-телефона или планшета? На самом деле можно использовать стандартную клавиатуру, установленную на вашем устройстве, однако нужно сделать так, что бы ее можно было вызвать в игре. Мы расскажем, как это сделать.

Для начала нужно открыть саму игру, что бы она была загружена в память вашего устройства. После этого сверните игру, нажав на центральную кнопку планшета. Мы в качестве примера возьмем первое попавшееся приложения, пусть это будет CPU-Z (в данном случае название или направленность приложения не играет никакой роли).

Теперь зайдите в Google Play Маркет, скачайте и установите приложение Smart Office 2 — это редактор для документов. На самом деле вы можете скачать любое другое приложение, в котором клавиатура не сворачивается вместе с приложением. Smart Office 2 — как раз одно из таких приложений.

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

Выберите любой из имеющихся документов. Пусть это будет документ DOC.

В нижней части экрана нажмите «Правка», чтобы появилась клавиатура (в версии для планшетов отдельная кнопка «Клавиатура» находится в верхней части экрана).

У нас появилась клавиатура. Как видите, в ней нет ничего необычного — клавиатура как клавиатура, за исключением того важного факта, что она не убирается при сворачивании приложения!

Так, вы можете выйти на рабочий стол и клавиатура никуда не денется.

Но нас интересует другое. Помните, в начале статьи мы писали о том, что игра должна быть свернута? Запустите диспетчер задач и выберите в нем свою игру (в нашем случае диспетчер задач вызывается длительным нажатием на кнопку Home).

Вуаля, клавиатура никуда не делась, можете вводите чит-коды для своей игры.

В заключении напомним, что без чит-кодов играть куда интереснее.

Если у вас сработал указанный нами способ (или не сработал), будем благодарны, если вы сообщите об этом нам с помощью комментариев.

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

Что же делать? Все очень просто. Для начала идем в меню настроек, и находим там пункт «Язык и клавиатура ». Открыв его, мы можем увидеть список установленных на нашем устройстве клавиатур. Да, их может быть несколько – две, три и больше. Убеждаемся, что нужные нам клавиатуры выбраны. Если нет – отмечаем их «галочкой». При необходимости заходим в настройки нашей новой клавиатуры и выставляем нужные нам параметры.

Теперь нам нужно переключиться на нужную нам клавиатуру. Это очень просто. В поле ввода текста (адресной строке браузера или тексте сообщения электронной почты), нажимаем на экран и удерживаем палец (так называемый «длинный тап»). На экране появится выпадающее меню. Выбираем в нем «Способ ввода », а затем в появившемся списке, отмечаем нужную клавиатуру.

Все. В дальнейшем весь текст будет вводиться с помощью новой клавиатуры.

Все достаточно просто, не правда ли? А теперь давайте рассмотрим вот такую ситуацию: вы подключили внешнюю USB клавиатуру, и она заработала с вашим планшетом, но радость была недолгой – переключиться на другой язык кроме языка по умолчанию у вас не получается.

В чем дело? Опять же все просто. Здесь есть два варианта.

Первый – клавиатура Android или установленная вами другая экранная клавиатура не поддерживают работу с внешними клавиатурами. Поэтому вам нужно установить клавиатуру, поддерживающую работу с аппаратной клавиатурой. Например Smart KeyboardPro или Russian Keyboard, которые вы можете скачать из Маркета.

Второй – в настройках вашей экранной клавиатуры нужно просто найти и включить возможность работы с аппаратной клавиатурой. Там же вы можете найти и комбинацию клавиш, переключающих языки ввода. Например, для Smart KeyboardPro – это Shift + пробел.

Все, теперь вы можете наслаждаться работой на «настоящей», внешней клавиатуре.



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

«Чит» (от англ. cheat) переводится как «жульничество», но, насколько жульническим можно назвать использование чит-кодов? В большинстве видеоигр или играх для ПК эти коды изначально встроены разработчиком и представляют собой определённый набор символов. Делается это для того, чтобы тестировать ПО на стадии разработки. К примеру, воспользовавшись чит-кодом, разработчик не станет проходить все уровни игры, чтобы протестировать последний, а попадёт сразу на нужный уровень.

Другая возможность, которую не предусматривали разработчики – изменение в запущенной игре содержимого памяти, а также данных, хранящих весь объём информации, касающейся прогресса игрока, либо файлов сохранения (конфигурационные файлы). Эта схема существенно сложнее, но она даёт возможность трансформировать переменную игры, либо любой её параметр. Применение таких чит-кодов требует использования специальных программ, отвечающих за какой-то определённый адрес памяти, содержащий нужную информацию о персонаже.

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

Как ввести чит код на Андроиде

Ну, если с чит-кодами мы в общих чертах разобрались, то основной вопрос нашей темы пока остаётся открытым. Если для ввода читов, скажем, на ПК мы используем клавиатуру, то как это сделать на устройствах Android?

С помощью стандартной клавиатуры

На самом деле для ввода кодов можно воспользоваться стандартной клавиатурой, сделав возможным её вызов непосредственно в игре. Для этого нам потребуется программа-редактор документов Smart Office 2 (можно или в Google Play ), которую нужно установить на свой аппарат.

Теперь открываем игру, загруженную в память устройства (на скриншоте «», но это может быть любая другая игра), после чего сворачиваем её, сделав свайп и нажав кнопку «home »:

Затем запускаем Smart Office 2 , нажимаем «Новый документ » и выбираем любой формат документа, к примеру, DOC . Теперь нижней части дисплея нажимаем кнопку «Правка » (на планшетах для этого действия нажимаем, расположенную вверху кнопку «Клавиатура »):

После проделанных действий у нас появится клавиатура, которая не будет убираться, после того, как мы свернём приложение. Нам осталось через диспетчера задач выбрать свою игру. Это можно сделать длительным нажатием на кнопку «Home » или, как на скриншоте (смартфон Huawei Honor 5А), крайнюю правую кнопку в виде квадратика с правой стороны дисплея (см. выше). «Тапаем» по игре и, когда она откроется, мы увидим, что клавиатура осталась на месте:

С помощью стороннего софта (GameKeyboard+)

Не исключено, что описанный выше способ для вашего устройства неактуален, в таком случае можно для ввода чит-кодов воспользоваться приложением «GameKeyboard+». Это специальная клавиатура, разработанная для современных устройств с ОС Android в целях комфортного управления игровым процессом.

Чтобы использовать эту возможность для введения чит-кодов, скачиваем и устанавливаем GameKeyboard+ на свой Андроид (приложение распространяется на платной основе). Запустив программу, мы видим главную страницу и начинаем действовать согласно представленному руководству.

Первым шагом (нажимаем на поле step 1 ) выбираем клавиатуру — ставим галочку в строке «Game Keyboard «, откроется окошко, в котором нужно подтвердить выбранное действие (кнопка «Да «):

Вторым шагом (step 2 ) выбираем метод ввода. После того, как мы нажмём строку с третьим шагом (step 3 ) появится геймпад и другие инструменты управления. В некоторых играх потребуется их настройка (например, чтобы открыть инвентарь в Undertale). Для этого нажимаем кнопку «Usage Mode » и в выпавшем окне ставим галочку в строке «Edit Mode «:

Для удаления ненужных кнопок нажимаем поочерёдно на каждую из них, после чего в открывшемся окошке нажимаем кнопку «Remove «. Для завершения действия «тапаем» на строку «tap Top-Right screen corner/Vol-Up… » и в открывшемся меню «Select Action » жмём кнопку «Отмена » (на скриншоте третий фрагмент):

Если есть необходимость вызвать только клавиатуру (к примеру, чтобы ввести и др.), то для некоторых моделей устройств достаточно после первого и второго шага (см. скриншот 1 и 2) нажать кнопку «Usage Mode » и поставить галочку в поле «Show Qwerty » (первый фрагмент скриншота см.ниже).

После появления геймпада нам нужно нажать кнопку “Settings ” (настройки) и проставить галочки в пунктах:

  • 8-way D-Pad (8-позиционный D-Pad).
  • Вместо геймпада по умолчанию показывать кл-туру.
  • [Vol. Up ] (для вызова клавиатуры кнопкой «громкость» (на увеличение).
  • «Не блокировать » (для удобства перемещений указателя мыши. Если на вашем устройстве появились лаги, то это действие можно отменить).
  • «Показывать предупр. «, а также «Использовать джойст. » (здесь чекбоксы могут стоять по умолчанию).

По окончании настройки выходим из Game Keyboard (кнопка «Выход ») и запускаем игру. При необходимости вызвать клавиатуру для введения читов используем кнопку «Громкость+»:

Если понадобится вызвать геймпад, жмём на его изображение в левом нижнем углу клавиатуры, это действие откроет наэкранную крестовину (т.е. клавиши курсора), а также левую и правую кнопки мыши (кнопки «А » и «В »). Для возврата в режим клавиатуры – кнопка «Х ». Нажатие кнопки «назад» на смартфоне полностью уберёт клавиатуру (или геймпад).

В настройках можно, поставив галочку, сделать клавиатуру полупрозрачной, изменить конфигурацию и размер геймпада.

*Примечание : вводить чит-коды нужно медленно, строго соблюдая нужный регистр букв, пробелы и символы.

Надеемся, что представленные хак-инструменты помогли вам в решении вопроса, как вводить читы на Андроид. Напоминаем, что будем благодарны, если кто-то поделится с нашими читателями своим способом, отличным от описанных. Удачи!

Обработка аппаратных клавиш и клавиатуры имеет следующие методы

  • onKeyDown() - вызывается при нажатии любой аппаратной клавиши;
  • onKeyUp() - вызывается при отпускании любой аппаратной клавиши;

Кроме клавиш, есть еще другие методы обработки пользовательского ввода (здесь не рассматриваются):

  • onTrackballEvent() - срабатывает при движениях трекбола;
  • onTouchEvent() - обработчик событий сенсорного экрана, срабатывает при касании, убирания пальца и при перетаскивании.

Чтобы ваши компоненты и активности реагировали на нажатия клавиш, переопределите обработчики событий onKeyUp() и onKeyDown() :

@Override public boolean onKeyDown(int keyCode, KeyEvent event) { // Обработайте нажатие, верните true, если обработка выполнена return false; } @Override public boolean onKeyUp(int keyCode, KeyEvent event) { // Обработайте отпускание клавиши, верните true, если обработка выполнена return false; }

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

Параметр KeyEvent также включает в себя несколько методов: isAltPressed() , isShiftPressed() и isSymPressed() , определяющих, были ли нажаты функциональные клавиши, такие как Alt, Shift или Sym. Статический метод isModifierKey() принимает keyCode и определяет, является ли нажатая клавиша модификатором.

Кнопка Back: Вы уверены, что хотите выйти из программы?

Кнопка Back (Назад) закрывает приложение, точнее текущую активность, но если приложение состоит из одной активности, то это равносильно закрытию всего приложения. В большинстве случаев вам нет никакого дела до неуклюжего пользователя, который по ошибке нажал на кнопку Back вместо кнопки Подарить разработчику миллион . Но, если ваша программа, будучи запущенной на телефоне пользователя, потихоньку списывает деньги клиента в счет Фонда голодных котов, то нужно дать ему шанс задуматься и вывести диалоговое окно с вопросом: "А действительно ли вы хотите выйти из программы?"

Чтобы реализовать такую задачу, нужно переопределить поведение кнопки Back через метод onBackPressed() следующим образом:

@Override public void onBackPressed() { // super.onBackPressed(); openQuitDialog(); } private void openQuitDialog() { AlertDialog.Builder quitDialog = new AlertDialog.Builder(CustomViewDemoActivity.this); quitDialog.setTitle("Выход: Вы уверены?"); quitDialog.setPositiveButton("Таки да!", new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated method stub finish(); } }); quitDialog.setNegativeButton("Нет", new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated method stub } }); quitDialog.show(); }

Данный метод появился в Android 2.0. Для более ранних версий использовался стандартный код обработки onKeyDown() :

@Override public boolean onKeyDown(int keyCode, KeyEvent event) { //replaces the default "Back" button action if(keyCode == KeyEvent.KEYCODE_BACK) { // ваш код } return true; }

Двойное нажатие на кнопку Back

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

Private static long back_pressed; @Override public void onBackPressed() { if (back_pressed + 2000 > System.currentTimeMillis()) super.onBackPressed(); else Toast.makeText(getBaseContext(), "Press once again to exit!", Toast.LENGTH_SHORT).show(); back_pressed = System.currentTimeMillis(); }

Кнопка Home

Можно отследить нажатие кнопки Home через метод активности onUserLeaveHint() :

@Override protected void onUserLeaveHint() { Toast toast = Toast.makeText(getApplicationContext(), "Нажата кнопка HOME", Toast.LENGTH_SHORT); toast.show(); super.onUserLeaveHint(); }

Обработка кнопки Menu

У телефона, кроме кнопки Back, есть еще кнопка Menu для вызова команд меню (на некоторых устройствах). Если необходимо обрабатывать нажатия этой кнопки (например, управление в игре), то используйте следующий код (обычное и долгое нажатие):

@Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_MENU) { event.startTracking(); editText.setText("Key Down"); //вывожу текст в текстовом поле return true; } return super.onKeyDown(keyCode, event); } @Override public boolean onKeyLongPress(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_MENU) { editText.setText("Long Press"); //вывожу текст в текстовом поле return true; } return super.onKeyLongPress(keyCode, event); }

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

Другие кнопки

Ну на самом деле можно отслеживать не только нажатие кнопки Меню, но и кнопку Поиска и кнопки увеличения громкости.

@Override public boolean onKeyDown(int keyCode, KeyEvent event) { switch (keyCode) { case KeyEvent.KEYCODE_MENU: Toast.makeText(this, "Нажата кнопка Меню", Toast.LENGTH_SHORT) .show(); return true; case KeyEvent.KEYCODE_SEARCH: Toast.makeText(this, "Нажата кнопка Поиск", Toast.LENGTH_SHORT) .show(); return true; case KeyEvent.KEYCODE_BACK: onBackPressed(); return true; case KeyEvent.KEYCODE_VOLUME_UP: event.startTracking(); return true; case KeyEvent.KEYCODE_VOLUME_DOWN: Toast.makeText(this, "Нажата кнопка громкости", Toast.LENGTH_SHORT) .show(); return false; } return super.onKeyDown(keyCode, event); }

Обратите внимание, что для кнопки громкости возвращаем false , т.е. мы не переопределяем поведение кнопки, а оставляем её на усмотрение системы.

По такому же принципу работает метод onKeyUp() . Метод onKeyLongPress() можно использовать, если в методе onKeyDown() был задействован метод event.startTracking() , отслеживающий поведение кнопки. В нашем примере мы отслеживали кнопку Volume_Up .

Прячем клавиатуру

Бывает так, что при запуске активности сразу выскакивает клавиатура. Если такое поведение не нравится, то пропишите в манифесте нужное значение у атрибута android:windowSoftInputMode ().

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

// прячем клавиатуру. butCalculate - это кнопка InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(butCalculate.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);

Код так выглядит, если писать его в Activity . Если расположить его в другом классе, экземпляр Activity нужно передать туда как параметр и вызывать методы как activity.getApplicationContext() , где activity - экземпляр Activity .

Можно избавить компонент от фокуса:

Android:focusable="false"

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

InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0);

Кстати, повторный вызов метода закроет клавиатуру. Указанный способ не требует наличия элементов View .

Если продолжить тему показа клавиатуры, то может возникнуть следующая ситуация. Допустим у вас есть DialogFragment с EditText . При выводе диалогового окна вам нужно установить фокус на EditText и показать клавиатуру:

Public class EditNameDialog extends DialogFragment { private EditText editText; public EditNameDialog() { // Empty constructor required for DialogFragment } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_edit_name, container); editText = (EditText) view.findViewById(R.id.txt_yourName); // Request focus and show soft keyboard automatically editText.requestFocus(); getDialog().getWindow().setSoftInputMode(LayoutParams.SOFT_INPUT_STATE_VISIBLE); return view; } }

Либо используйте тег для нужного EditText.

Изменить вид клавиатуры для данного EditText

Когда элемент EditText получает фокус, то появляется клавиатура. Можно установить нужный вид клавиатуры через или программно через метод setInputType() :

EditText ipt = new EditText(this); ipt.setInputType(InputType.TYPE_CLASS_PHONE); //установит клавиатуру для ввода номера телефона

Другие варианты:

TYPE_CLASS_DATETIME - дата и время
TYPE_CLASS_NUMBER - цифры
TYPE_CLASS_TEXT - буквы

Переопределяем кнопку Enter

Кроме атрибута InputType можно также использовать атрибут android:imeOptions в компоненте EditText , который позволяет заменить кнопку Enter на клавиатуре на другие кнопки, например, Next , Go , Search и др. Возможны следующие значения:

  • actionUnspecified : Используется по умолчанию. Система сама выбирает нужный вид кнопки (IME_NULL)
  • actionGo : Выводит надпись Go . Действует как клавиша Enter при наборе адреса в адресной строке браузера (IME_ACTION_GO)
  • actionSearch : Выводит значок поиска (IME_ACTION_SEARCH)
  • actionSend : Выводит надпись Send (IME_ACTION_SEND)
  • actionNext : Выводит надпись Next (IME_ACTION_NEXT)
  • actionDone : Выводи надпись Done (IME_ACTION_DONE)

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

Чтобы реагировать на нажатия разных состояний кнопки Enter, необходимо реализовать интерфейс TextView.OnEditorActionListener . Небольшой пример:

Package ru.alexanderklimov.test; import ... public class TestActivity extends Activity implements OnEditorActionListener { EditText editSearch; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_test); // Добавляем слушателя к компонентам editSearch = (EditText) findViewById(R.id.editSearch); editSearch.setOnEditorActionListener(this); EditText editGo = (EditText) findViewById(R.id.editGo); editGo.setOnEditorActionListener(this); // и так далее } @Override public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { if (actionId == EditorInfo.IME_ACTION_SEARCH) { // обрабатываем нажатие кнопки поиска if (!editSearch.getText().toString().equals("cat")) { Toast.makeText(this, "Не буду ничего искать!", Toast.LENGTH_LONG).show(); } return true; } if (actionId == EditorInfo.IME_ACTION_GO) { // обрабатываем нажатие кнопки GO return true; } return false; } }

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

Также можно поменять текст на кнопке с помощью атрибута android:imeActionLabel :

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

@Override public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { if (actionId == EditorInfo.IME_ACTION_DONE || actionId == R.id.action_sign_in) { // обрабатываем нажатие кнопки if(mEditText.getText().toString() != "кот"){ Toast.makeText(this, "Не буду ничего искать!", Toast.LENGTH_LONG).show(); } return true; } return false; }

Upd: Читатель Максим Г. предложил следующее решение проблемы. Убираем атрибуты imeOptions , imeActionId , imeActionLabel и установим их программно.

MEditText = (EditText) findViewById(R.id.editDone); mEditText.setOnEditorActionListener(this); // вместо imeActionLabel и imeOptions mEditText.setImeActionLabel("Мяу", EditorInfo.IME_ACTION_DONE); @Override public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { boolean handled = false; if (actionId == EditorInfo.IME_ACTION_DONE) { // обрабатываем нажатие кнопки if(mEditText.getText().toString() != "кот"){ Toast.makeText(this, "Не буду ничего искать!", Toast.LENGTH_LONG).show(); } return handled; } return handled; }

По желанию можете отслеживать только у нужного поля. Поставьте дополнительное условие после первого блока if :

// только у данного поля if (v.getId == R.id.editDone){ }

Интерфейс OnKeyListener

Чтобы среагировать на нажатие клавиши внутри существующего представления из активности, реализуйте интерфейс OnKeyListener и назначьте его для объекта View , используя метод setOnKeyListener() . Вместо того, чтобы реализовывать отдельные методы для событий нажатия и отпускания клавиш, OnKeyListener использует единое событие onKey() .

MyView.setOnKeyListener(new OnKeyListener() { public boolean onKey(View v, int keyCode, KeyEvent event) { // TODO Обработайте нажатие клавиши, верните true, если // обработка выполнена return false; } });

Используйте параметр keyCode для получения клавиши, которая была нажата. Параметр KeyEvent нужен для распознавания типа события (нажатие представлено константой ACTION_DOWN , а отпускание - ACTION_UP ).

Сдвигаем активность

Чтобы всплывающая клавиатура не заслоняла элемент интерфейса, который получил фокус, а сдвигала активность вверх, можно в манифесте для нужной активности прописать атрибут android:windowSoftInputMode с параметром adjustPan :

Также доступны и другие параметры:

  • stateUnspecified - настройка по умолчанию. Система сама выбирает подходящее поведение клавиатуры.
  • stateUnchanged - клавиатура сохраняет своё последнее состояние (видимое или невидимое), когда активность с текстовым полем получает фокус.
  • stateHidden - клавиатура скрыта, когда открывается активность. Клавиатура появится при наборе текста. Если пользователь переключится на другую активность, то клавиатура будут скрыта, но при возвращении назад клавиатура останется на экране, если она была видима при закрытии активности.
  • stateAlwaysHidden - клавиатура всегда скрывается, если активность получает фокус.
  • stateVisible - клавиатура видима.
  • stateAlwaysVisible - клавиатура становится видимой, когда пользователь открывает активность.
  • adjustResize - размеры компонентов в окне активности могут изменяться, чтобы освободить место для экранной клавиатуры.
  • adjustPan - окно активности и его компоненты не изменяются, а сдвигаются таким образом, чтобы текстовое поле с фокусом не было закрыто клавиатурой.
  • adjustUnspecified - настройка по умолчанию. Система сама выбирает нужный режим.

Параметры с префиксом state можно комбинировать с настройками с префиксом adjust :

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

Данные настройки доступны и программно. Например, код для adjustResize :

Activity.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);

Кстати, этот код не сработает в полноэкранном режиме (флаг FLAG_FULLSCREEN ). Сверяйтесь с документацией.

Узнать выбранный язык на клавиатуре

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

Public void onClick(View view) { InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); InputMethodSubtype ims = imm.getCurrentInputMethodSubtype(); String localeString = ims.getLocale(); Locale locale = new Locale(localeString); String currentLanguage = locale.getDisplayLanguage(); EditText languageEditText = (EditText)findViewById(R.id.etNewItem); Toast.makeText(getApplicationContext(), currentLanguage, Toast.LENGTH_SHORT).show(); }

Следует быть осторожным с примером. На эмуляторе с Android 6.0 пример работал корректно. На реальных устройствах у меня корректно определялся русский язык, но при переключении на английский язык выдавал пустую строку или значение "zz". В этом случае можно прибегнуть к условиям if и проверять ожидаемое значение.

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

Откроем окно настроек клавиатур.

Intent intent = new Intent(Settings.ACTION_INPUT_METHOD_SETTINGS); // виртуальные клавиатуры Intent intent = new Intent(Settings.ACTION_HARD_KEYBOARD_SETTINGS); // API 24: реальные клавиатуры if (intent.resolveActivity(getPackageManager()) != null) { startActivity(intent); }

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

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

Стандартная экранная клавиатура смартфона или планшета

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

Основной экран клавиатуры

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

Чтобы переключиться на ввод заглавной буквы нужно нажать клавишу <Shift >, представленную в виде значка со стрелкой вверх и находящейся слева. Для ввода нескольких заглавных символов просто удерживайте эту клавишу одним пальцем одной руки, продолжая печатать пальцем другой. Чтобы включить постоянный режим заглавных букв <CapsLock > дважды тапните (нажмите) на клавише <Shift >

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

Как и в компьютерной клавиатуре, здесь присутствует клавиша <Enter > для перевода строки и завершения команд, которая находится под клавишей <Delete > и обозначена символом изогнутой стрелки.

Для перемещения курсора при наборе текста достаточно просто легко нажать пальцем в нужном месте активного поля ввода.

Чтобы убрать экранную клавиатуру нажмите кнопку «Назад» на передней панели Android устройства.

Дополнительные экраны клавиатуры

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

Для открытия символьного экрана служит клавиша 123 расположенная слева внизу. Экран со смайликами вызывается долгим нажатием на клавишу <Enter >.

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

C помощью экранной клавиатуры Android можно также выполнять операции с буфером обмена, такие как: «Копировать », «Вырезать », «Вставить ». Чтобы выделить участок текста нажмите и удерживайте палец на нужном слове, в результате чего слово будет выделено и обозначено маркерами. Выделить необходимый участок текста, можно потянув маркеры до нужной величины. При этом экранные кнопки «Вырезать », «Копировать », «Вставить » будут выведены рядом с текстом.

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