InputMethodManager如何设置输入法类型?

时间:2016-05-11 09:54:54

标签: java android

在Android中,inputmethodmanagerapi来管理输入法,现在有一个问题,如何通过inputmethodmanager类型控制输入法,如数字键盘或字母键盘等?

InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
List<InputMethodInfo> enabledInputMethodList = imm.getEnabledInputMethodList();
imm.setInputMethod(getCurrentFocus().getWindowToken(), enabledInputMethodList.get(1).getId());
imm.setCurrentInputMethodSubtype(imm.getCurrentInputMethodSubtype());

imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);

这只能调用Android系统键盘,但键盘类型无法控制,例如:数字键盘或字母键盘。

3 个答案:

答案 0 :(得分:0)

您必须将它应用于您的对象。例如,如果您有一个名为EditText的{​​{1}}对象,则可以应用它并使用myEditText输入类型。当用户点击myEditText.setInputType(InputType.TYPE_CLASS_NUMBER)时,系统会提示他输入EditText

类型的键盘

答案 1 :(得分:0)

在xml文件的EditText中,添加以下标记:

android:inputType="textPassword" 

并且要更具体地说明选择,如果需要,可以在xml中添加:

              android:digits="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ12345679"

答案 2 :(得分:-1)

试试这个。

使用xml,

android:inputType="WHAT_YOU_WANT"

Click here查看可能的类型。

使用java,

YOUR_EDIT_TEXT_NAME.setInputType(InputType.TYPE_CLASS_NUMBER)