如何真正重置 editText 以显示修改后的提示
How to really reset an editText in order to show a modified hint
我想重置编辑文本。我试过 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)
}
}
这是我的问题的解决方案,即在输入值时将字符替换为 editText 中的另一个字符。在这里,我想替换“,”或“。”通过“+”。
代码解决方案:
val PKd = findViewById<EditText>(R.id.editTexT_PKd)
PKd.addTextChangedListener(object : TextWatcher {
override fun afterTextChanged(editable: Editable?) {
PKd.setSelection(editable?.length!!)
}
override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {
}
override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {
PKd.removeTextChangedListener(this)
PKd.setText(PKd.text.toString().replace(",", "+").replace(".", "+"))
PKd.addTextChangedListener(this)
}
})
我想重置编辑文本。我试过 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)
}
}
这是我的问题的解决方案,即在输入值时将字符替换为 editText 中的另一个字符。在这里,我想替换“,”或“。”通过“+”。
代码解决方案:
val PKd = findViewById<EditText>(R.id.editTexT_PKd)
PKd.addTextChangedListener(object : TextWatcher {
override fun afterTextChanged(editable: Editable?) {
PKd.setSelection(editable?.length!!)
}
override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {
}
override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {
PKd.removeTextChangedListener(this)
PKd.setText(PKd.text.toString().replace(",", "+").replace(".", "+"))
PKd.addTextChangedListener(this)
}
})