0

我在 XML 中定义了一个带有属性android:inputType="numberSigned"的 EditText ,因此,当我尝试在 Java 代码中获取它时,例如:

int type = mEditText.getInputType();
switch(type){
case InputType.TYPE_NUMBER_FLAG_SIGNED:
//do when I get EditText defined with 'numberSinged'
//do something
break;
}

但是,它对我不起作用。所以我尝试检查Android源代码,TYPE_NUMBER_FLAG_SIGNED=4096. 当我尝试打印println(mEditText.getInputType())时,它变成了4098。而且我找不到任何变量 equals 4098
谁能告诉我原因?

我英语不好,希望你能理解我!谢谢!

4

2 回答 2

1

可以有多个标志分配给 inputType。要确定是否设置了标志,请使用按位 AND ( &) 运算符:

int type = mEditText.getInputType();
if((type & InputType.TYPE_NUMBER_FLAG_SIGNED) > 0)
{
    // your stuff here
}

我想,switch这里不可能使用 case 。

于 2012-11-21T03:59:48.427 回答
0

TYPE_NUMBER_FLAG_SIGNED常数值:4096 (0x00001000)。

在此处获取更多信息

于 2012-11-21T04:02:10.073 回答