Android Kotlin中使用Anko为EditText设置多inputType的方法
在Anko中为EditText设置多个inputType的方法
嘿,完全不用换回XML!你遇到的问题其实是因为XML里的|本质是位或运算,而Anko里的inputType接受的int参数刚好可以用Kotlin的位或操作符or来组合对应的常量,不用去记那些难读的魔法数字(比如2002)。
具体实现步骤
XML里的android:inputType="numberSigned|numberDecimal"对应的是Android SDK中InputType类的三个常量组合:
TYPE_CLASS_NUMBER:指定输入类型为数字类TYPE_NUMBER_FLAG_SIGNED:允许输入正负号TYPE_NUMBER_FLAG_DECIMAL:允许输入小数点
在Anko里直接用or把它们组合起来就行:
import android.text.InputType editText { inputType = InputType.TYPE_CLASS_NUMBER or InputType.TYPE_NUMBER_FLAG_SIGNED or InputType.TYPE_NUMBER_FLAG_DECIMAL }
如果觉得写全路径太繁琐,可以导入InputType的所有成员,代码会更简洁:
import android.text.InputType.* editText { inputType = TYPE_CLASS_NUMBER or TYPE_NUMBER_FLAG_SIGNED or TYPE_NUMBER_FLAG_DECIMAL }
这样设置后的EditText和XML里的效果完全一致,既能输入带正负号的小数,又不用回到XML布局。
内容的提问来源于stack exchange,提问作者Blender
相关产品推荐
相关产品推荐

