gpt4 book ai didi

java - 更新 TextChangedListener 中的 EditText 值导致崩溃

转载 作者:行者123 更新时间:2023-12-02 11:46:56 25 4
gpt4 key购买 nike

我试图将编辑文本值限制为小于或等于 130。在 onCreate 方法中,我执行了以下操作:

final EditText expectedYears = (EditText)findViewById(R.id.lifespan);
expectedYears.addTextChangedListener(new TextWatcher() {
public void afterTextChanged(Editable s) {}
public void beforeTextChanged(CharSequence s, int start,
int count, int after) {
}
public void onTextChanged(CharSequence s, int start,
int before, int count){
if(Integer.parseInt(s.toString())>130){
expectedYears.setText(String.valueOf(130));
}

}
});

我不太确定为什么应用程序在此之后崩溃。通过测试,我发现 expectedYears.setText 行导致了这种情况。我感觉一旦设置了文本,onTextChanged 函数就会再次被调用。我怎样才能解决这个问题?

堆栈跟踪

 at android.widget.EditText.setText(EditText.java:113)
at android.widget.TextView.setText(TextView.java:5209
at net.msolonko.motivation_app.MainActivity$1.onTextChanged(MainActivity.java:49)
at android.widget.TextView.sendOnTextChanged(TextView.java:9364)
at android.widget.TextView.setText(TextView.java:5397)
at android.widget.TextView.setText(TextView.java:5250)

最佳答案

根据this question ,您不应该更改在 onTextChanged() 中监视的 EditText 的文本。我的猜测是它会导致无限递归循环。

相反,尝试将您的逻辑设置在 afterTextChanged() 中。

关于java - 更新 TextChangedListener 中的 EditText 值导致崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48134060/

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