我开发了一个简单的键盘。
这是一款专为带硬件键盘的手机设计的T9键盘。
当我想在标准的EditText中写入内容时,我没有问题,但是当我尝试在带有android:inputType="phone"
或android:inputType="number"
的ediText中写入数字时,键盘仍会尝试写入字母。
我的问题是:检测我所关注的editText是否是自定义键盘中的仅限数字,纯文本等等的最佳和最简单的方法是什么? 如何从键盘中检测inputType?
我希望你们中的某个人过去已经解决了这个问题,可以提前帮助......谢谢你们!
答案 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字段,您可以从
了解当前编辑文本输入类型