gpt4 book ai didi

android - 在 addTextChangedListener 上将 editText 文本设置为大写,使应用程序挂起

转载 作者:行者123 更新时间:2023-12-04 15:00:44 25 4
gpt4 key购买 nike

关闭。这个问题需要details or clarity .它目前不接受答案。












想改进这个问题?通过 editing this post 添加详细信息并澄清问题.


去年关闭。







Improve this question




即使用户在 edittext 中写小写,我也想将其设为大写.所以我设置ediTextaddTextChangedListener 上将文本转为大写如下所示。

  editText.addTextChangedListener(object : TextWatcher{
override fun beforeTextChanged(s : CharSequence?, start : Int, count : Int, after : Int) {
}

override fun onTextChanged(s : CharSequence?, start : Int, before : Int, count : Int) {
editText.setText(s.toString().toUpperCase())
}

override fun afterTextChanged(s : Editable?) {

}
})
但是当我在 editText 中输入内容时这样做,应用程序挂起,我必须终止应用程序并重新启动它。因为我想在绑定(bind)适配器中使用它,所以我不能使用 xml 的 AllCaps 方法

最佳答案

您需要删除 textwatcher在编辑 EditText 的文本之前并在更改完成后再次阅读。

    val watcher: TextWatcher = object : TextWatcher {
override fun beforeTextChanged(s: CharSequence, start: Int, count: Int, after: Int) {

}

override fun onTextChanged(s: CharSequence, start: Int, before: Int, count: Int) {
editText.removeTextChangedListener(this)
editText.setText(s.toString().toUpperCase())
editText.addTextChangedListener(this)
}

override fun afterTextChanged(s: Editable) {}
}

editText.addTextChangedListener(watcher)

关于android - 在 addTextChangedListener 上将 editText 文本设置为大写,使应用程序挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67008237/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com