输入法管理器:如何设置输入法类型?

3

在Android中,InputMethodManager API用于管理输入法。现在有一个问题,如何通过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
你是否找到了这个问题的答案?这里所有的答案都在回答如何使用一个你没有的EditText字段的引用,因此不正确。请问您是否想知道该怎么做? - PGMacDesign
3个回答

0

你需要将它应用到你的对象上。例如,如果你有一个名为myEditTextEditText对象,你可以使用myEditText.setInputType(InputType.TYPE_CLASS_NUMBER)来应用输入类型。当用户点击你的EditText时,他将会看到一个数字键盘。


1
如果不是通过EditText对象,你可以通过InputMethodManager设置键盘类型吗? - shuwang
我不明白你的目标。你想将输入法设置为整个应用程序吗? - E-Kami
3
我希望使用InputMethodManager设置输入类型,而不是EditText。通过调用InputMethodManager来设置默认键盘为字母键盘,但我想通过InputMethodManager将其设置为数字键盘类型。 - shuwang

0
在你的xml文件的EditText中,添加以下标签:
android:inputType="textPassword" 

更具体地说选择,如果您愿意,可以将其添加到xml中:

              android:digits="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ12345679"

我认为只有通过InputMethodManager管理设置输入类型才更好?而不是使用XML和EditText来设置类型。 - shuwang

-1

试试这个。

通过使用 XML,

android:inputType="WHAT_YOU_WANT"

点击这里查看可能的类型。

通过使用Java,

YOUR_EDIT_TEXT_NAME.setInputType(InputType.TYPE_CLASS_NUMBER)

1
现在不想通过 XML 和 EditText 控件键盘输入了。 - shuwang
1
可以通过InputMethodManager控制键盘类型吗?提供API。 - shuwang
我想使用InputMethodManager设置输入类型而不是EditText,通过InputMethodManager调用键盘默认字母类型键盘,但我想通过InputMethodManager键盘设置为数字类型。 - shuwang
android:inputType="number" - 它也可以满足您的需求并提供解决方案。 - Sathish Kumar J
这仅适用于特定的编辑文本。我们谈论的是更改键盘上的输入类型,而不是编辑文本。 - Sebastian Paduano
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接