android - 如何真正重置editText以显示修改后的提示
问题描述
我想重置编辑文本。我试过 getText().clear() 但没有出现提示。设置为“”不是我的目标,因为监听器再次触发。我的目标只是再次显示提示。如何 ?
最终编辑问题:最终目标是用另一个字符替换一个字符,所以我考虑使用提示。但事实上,还有更好的解决方案。请参阅下面的我的答案,或者更漂亮的解决方案与系统的罪人的答案。
旧编辑 1:
override fun afterTextChanged(p0: Editable?) {
var hintSave:String=PKd.text.toString().replace(".","+")
if (!PKd.text.isNullOrEmpty()){
Handler().postDelayed({
PKf.setText("Pkf")
PKd.setText("")
PKd.hint=hintSave
}, 3000)}
}
旧编辑 2:
提示不会以一种方式出现什么是问题。我们可以延迟输入以仅考虑一次输入吗?
解决方案
与您的答案相同,但更具科特林风格
val Pkd = findViewById<EditText>(R.id.editTexT_PKd)
val regex = Regex("[.,]")
Pkd.doAfterTextChanged {
if (it?.contains(regex) == true) {
Pkd.setText(it.replace(regex, "+"))
Pkd.setSelection(it.length)
}
}
推荐阅读
- javascript - 无法在 iphone 或 ipad pro ios12 上的 Safari 浏览器中下载 PDF
- java - 我正在尝试使用 setcolumnwidth 在 excel 2010 上设置列宽
- python - 使用 python 3 控制 windows 命令行
- sql-server - 如何在两个游标中管理@@fetchstatus?
- html - 当我到达 HTML 页面的特定部分时如何添加声音
- html - Angular 6,一个带有href的标签,使用#link链接到基本页面而不是当前页面
- javascript - 我可以使用 chrome 扩展程序注入 intercom.io 吗?
- ios - 如何在滚动视图中制作一组按钮?
- javascript - 未为 plotLines highcharts 呈现标签
- go - 将外部错误映射到 golang 中的域错误