我在 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
。我找不到任何等于 4098
的变量。
有人能告诉我原因吗?
我英语不好,希望你能听懂我的意思!谢谢!
最佳答案
可以为 inputType 分配多个标志。要查明是否设置了标志,请使用按位 AND (&
) 运算符:
int type = mEditText.getInputType();
if((type & InputType.TYPE_NUMBER_FLAG_SIGNED) > 0)
{
// your stuff here
}
我猜,这里不可能使用switch
case。
关于java - JAVA代码中的android getInputType,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13486101/