Можно ли показать клавиатуру на определенном языке?
Предположим, что у меня есть два текстовых поля с одинаковой раскладкой, например (Адрес), первый ввод требует, чтобы адрес был на английском языке, а клавиатура должна отображаться на английском по умолчанию, второй ввод требует, чтобы адрес был на арабском языке.
Мой вопрос: могу ли я показать клавиатуру с определенным языком, когда это необходимо, например, арабский адрес.
Есть ли что-то вроде android:inputType""
для языка?
2 ответа
Да, вы можете сделать это, объявив свое приложение как Системное приложение, применив следующее разрешение:
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
Получить текущий идентификатор языка ввода клавиатуры из следующих
Settings.Secure.getString(getContentResolver(),Settings.Secure.DEFAULT_INPUT_METHOD)
Затем вам нужно явно установить ваш ввод с клавиатуры на нужный язык, используя следующий код:
InputMethodManager imeManager = (InputMethodManager) getApplicationContext().getSystemService(INPUT_METHOD_SERVICE);
//imeManager.showInputMethodPicker(); //This is to see available keyboards.
imeManager.setInputMethod(null,"jp.co.omronsoft.openwnn/.OpenWnnJAJP");
У вас есть много работы о том, как это сделать, то есть создать собственную клавиатуру, и для этого вам нужно будет знать, какие клавиатуры вы ищете. (который будет точной копией обычной клавиатуры)
Здесь вы можете получить образцы здесь и примеры кода.
Как сделать пользовательскую клавиатуру Android?
Перейдите по этой ссылке для создания пользовательской клавиатуры И, наконец,
EditText editText = (EditText) findViewById(R.id.editText);
MyKeyboard keyboard = (MyKeyboard) findViewById(R.id.keyboard);
// prevent system keyboard from appearing when EditText is tapped
editText.setRawInputType(InputType.TYPE_CLASS_TEXT);
editText.setTextIsSelectable(true);
// pass the InputConnection from the EditText to the keyboard
InputConnection ic = editText.onCreateInputConnection(new EditorInfo());
keyboard.setInputConnection(ic);