在Android中检测editText inputType的最佳方法?

时间:2016-02-09 15:29:43

标签: android android-keypad

我开发了一个简单的键盘。

这是一款专为带硬件键盘的手机设计的T9键盘。

当我想在标准的EditText中写入内容时,我没有问题,但是当我尝试在带有android:inputType="phone"android:inputType="number"的ediText中写入数字时,键盘仍会尝试写入字母。

我的问题是:检测我所关注的editText是否是自定义键盘中的仅限数字,纯文本等等的最佳和最简单的方法是什么? 如何从键盘中检测inputType?

我希望你们中的某个人过去已经解决了这个问题,可以提前帮助......谢谢你们!

2 个答案:

答案 0 :(得分:1)

this page上的“处理不同的输入类型”下:

  

当输入字段获得焦点并且您的IME启动时,系统调用onStartInputView(),传入EditorInfo对象,其中包含有关输入类型和文本字段的其他属性的详细信息。在此对象中,inputType字段包含文本字段的输入类型。

然后继续解释如何读取输入类型以及许多输入类型(及其相关标志)的含义。

答案 1 :(得分:0)

尝试这样的事情:

if(txt.getInputType()==InputType.TYPE_CLASS_PHONE){
//do something
}

同时检查此问题:Android: Determine active input method from code它描述了使用 InputMethodManager

**

另一种方法:

**

开发自定义键盘时:如http://developer.android.com/guide/topics/text/creating-input-method.html#IMEUI

所述

扩展 InputMethodService ,它提供方法 onStartInputView(EditorInfo info,boolean restarting)

onStartInputView具有EditorInfo参数,该参数具有inputType字段,您可以从

了解当前编辑文本输入类型