You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 08:05:49