微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

EditText 的电话号码格式

如何解决EditText 的电话号码格式

我正在使用库 input-mask-android用户输入时格式化文本。
我有一系列电话号码掩码。认情况下,选择数组中的第一个掩码。用户可以使用 Spinner 选择不同的蒙版。但是,当用户使用 Spinner 选择蒙版时,它不会像他希望的那样工作。 假设掩码数组包含两个掩码:["+12 - ###","+34 - ###"]。如果用户选择第二个掩码,则在 EditText 中键入时将出现以下内容: 输入 5 将: +34-512.
也就是输入后会自动放上之前掩码的关键字符。
我在 Kotlin 中的代码

        val listener: MaskedTextChangedListener = installOn(
                etPhoneNumber!!,maskT,affineFormats,AffinityCalculationStrategy.PREFIX,object : ValueListener {
                    override fun onTextChanged(
                            maskFilled: Boolean,extractedValue: String,formattedValue: String
                    ) {
                        logValueListener(maskFilled,extractedValue,formattedValue)
                        Log.e("CHANGE FORMAT:",affineFormats.toString())
                    }
                }
        )

maskT - 是选择的掩码 affineFormats - 存储最后一个掩码的动态数组。 任何建议将不胜感激。

解决方法

input-mask-android 图书馆作者在这里。

installOn 方法不适合您的需要。您必须在您的 MaskedTextChangedListener 上手动 initialise 一个 addTextChangedListener,然后 call 一个 EditText 方法。在选择掩码时,您必须确保移除先前的侦听器(通过在您的 removeTextChangedListener 上调用 EditText)。

installOn 方法不考虑可能有其他 TextWatcher 实例附加到您的 EditText。因此,所有已安装的听众都试图接管文本,同时添加他们自己的“+12”和“+34”前缀。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。