【问题标题】:Append special characters in number EditText在数字 EditText 中附加特殊字符
【发布时间】:2019-10-04 20:06:17
【问题描述】:

我正在尝试为编辑文本提供我想要的数字格式

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 语句,它可以工作,但不适用于字符 -/

【问题讨论】:

  • 您可能正在修改输入的副本。追加后尝试设置 textview 值。

标签: android kotlin android-edittext


【解决方案1】:

不妨试试:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-07-12
    • 2016-08-13
    • 2016-07-20
    • 1970-01-01
    • 1970-01-01
    • 2011-03-24
    • 1970-01-01
    相关资源
    最近更新 更多