在数字EditText中追加特殊字符

时间:2019-10-04 20:06:17

标签: android kotlin android-edittext

我正在尝试给编辑文本一个我想要的数字格式

edittext的输入类型是数字,但是当用户达到某些数字(3和10)时,我需要附加-/

我尝试使用

android:digits="0123456789-/"

在我的EditText中,但不起作用

<EditText
            android:id="@+id/txtNumber"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:inputType="number"
            android:digits="0123456789-/"
           />

这是我用来在用户书写时放置-或/的代码

 txtNumber.addTextChangedListener(object : TextWatcher {
            override fun afterTextChanged(text: Editable?) {}
            override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {}
            override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {
                if(s!!.length == 3){
                    txtNumber.append("-")
                }

                if(s.length == 10){
                    txtNumber.append("/")
                }
            }
        })...

这不起作用,我希望我的输出在写时像这样

234-983482/3

但是它不起作用,我认为这是因为edittext的inputType,但是它必须是数字,因为我只需要在其中键入数字即可。

如果我用.append("4")或任何数字更改if陈述,它可以工作,但不适用于字符-/

1 个答案:

答案 0 :(得分:0)

也许尝试:

if(s!!.length == 3){
   txtNumber+="-"
}