gpt4 book ai didi

java - Textwatchers afterTextChanged() 不断崩溃

转载 作者:行者123 更新时间:2023-12-01 22:28:12 24 4
gpt4 key购买 nike

我发现每次 EditText 文本更改时都会调用 afterTextChanged() (这就是它崩溃的原因),但我不知道如何解决问题。谁能帮帮我!

设置编辑文本并添加addTextChangedListener

    editText= (EditText) findViewById(R.id.editText);
editText.setInputType(InputType.TYPE_NULL);
editText.addTextChangedListener(textWatcher);


textWatcher = new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
//editText.removeTextChangedListener(textWatcher); //this doesn't help
}

@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {

}

@Override
public void afterTextChanged(Editable s) {


// Toast.makeText(mainAct, "OK",Toast.LENGTH_SHORT).show();


String user_answer =editText.getText().toString();
user_ans_int = Integer.parseInt(user_answer);

这应该检查 EditText 中的文本是否正确,这也是应用程序崩溃的地方(没有这部分它可以完美运行)

            if (user_ans_int == answer){
Toast.makeText(mainAct, "True", Toast.LENGTH_SHORT).show();
editText.setText("");

}
else {
Toast.makeText(mainAct, "Naaw - try again haha", Toast.LENGTH_SHORT).show();
editText.setText("");//delete text after checking
tru = false;
}


}

};

}

最佳答案

您将在此处收到 NumberFormatException: user_ans_int = Integer.parseInt(user_answer); 这是因为您向 editText 签名了 None Number 值> 并导致其 afterTextChanged() 被调用。

我认为您可以更改代码如下:

 user_ans_int = Integer.parseInt(user_answer);

至:

try{
user_ans_int = Integer.parseInt(user_answer);
}catch(NumberFormatException e){
// A none number value is signed to your edittext, do something here.
return;
}

关于java - Textwatchers afterTextChanged() 不断崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28315605/

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