Edittext输入类型常量值不匹配 [英] Edittext inputtype constant value doesnot match

查看:93
本文介绍了Edittext输入类型常量值不匹配的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在使用extext作为的android xml文件中

In android xml file im using editext as

<EditText
  android:id="@+id/email"
  android:layout_width="fill_parent"
  android:layout_height="33dp"
  android:inputType="textEmailAddress"
  android:hint="Enter your mail id" />

在Java文件中,同时验证那个editext.

In java file while validating that editext.

if(editextobj.getInputType()==InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS){

}

if(getInputType()==(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS)){

}

此条件不起作用,因为editextobj.getInputType()返回33,而开发人员文档将TYPE_TEXT_VARIATION_EMAIL_ADDRESS常量值设为32

this condition is not working since editextobj.getInputType() returns 33 whereas developer document gives TYPE_TEXT_VARIATION_EMAIL_ADDRESS constant value as 32

如何以编程方式验证输入法?

How to validate inputype programatically?

推荐答案

正在发生以下情况:
InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS值是:32.
InputType.TYPE_CLASS_TEXT值为:1.

The following is happening:
InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS value is: 32.
InputType.TYPE_CLASS_TEXT value is: 1.

(|)是按位或运算.它正在二进制级别进行修改:

the (|) is a bitwise OR operation. It's doing modification at the binary level:

十进制: 32 | 1产生33
Binary: 100000 | 1的结果为100001,即十进制的33.

Decimal: 32|1 results in 33
Binary: 100000|1 results in 100001 which is 33 in decimal.

editextobj.getInputType()的值为33

这篇关于Edittext输入类型常量值不匹配的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆