gpt4 book ai didi

java - 如何修复 TextWatcher 的方向变化?

转载 作者:行者123 更新时间:2023-12-02 00:49:57 28 4
gpt4 key购买 nike

我想使用 TextWatcher 为多个 editText 编写一个 validator 。

我已经有方法来验证用户写入的数据是否正确。还添加了验证来检查 editText 是否为空。但这里它没有像我想要的那样工作。当手机改变方向时,此 TextWatcher 也会被激活,但我不希望发生这种情况。我希望它仅在用户从 editText 中删除数据时才起作用。

这是代码:

@Override
final public void beforeTextChanged(CharSequence s, int start, int count, int after) {}

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

@Override
final public void afterTextChanged(Editable s) {

String text = textView.getText().toString();
if(textView.getText().toString().isEmpty()){
textView.setError("Can't be empty");
ParametersFrag.isCorrect = false;
} else {
validate(textView, text);
}
}

fragment 中的 validate 部分如下所示:

editText2_5.addTextChangedListener(new ParameterValidator(editText2_5) {
@Override
public void validate(TextView textView, String text) {
double parDouble = Double.parseDouble(Tab2Fragment.editText2_5.getText().toString());
if (parDouble < sth_min) {
textView.setError(getString(R.string.err_min_value) + " " + sth_min);
ParametersFrag.isCorrect = false;
} else if (parDouble > sth_max) {
textView.setError(getString(R.string.err_max_value) + " " + sth_max);
ParametersFrag.isCorrect = false;
} else {
ParametersFrag.isCorrect = true;
}
}
});

问题是如何让它在方向改变时不触发?谢谢您

最佳答案

试试这个:

    @Override
public void onConfigurationChanged(@NotNull Configuration newConfig) {
super.onConfigurationChanged(newConfig);

// Checks the orientation of the screen
switch (newConfig.orientation) {
case Configuration.ORIENTATION_LANDSCAPE:
editText2_5.addTextChangedListener(null);
break;

case Configuration.ORIENTATION_PORTRAIT:
// editText2_5.addTextChangedListener(null);

// ============= OR =============

// editText2_5.addTextChangedListener(new ParameterValidator(editText2_5) {
// @Override
// public void validate(TextView textView, String text) {
// double parDouble = Double.parseDouble(Tab2Fragment.editText2_5.getText().toString());
// if (parDouble < sth_min) {
// textView.setError(getString(R.string.err_min_value) + " " + sth_min);
// ParametersFrag.isCorrect = false;
// } else if (parDouble > sth_max) {
// textView.setError(getString(R.string.err_max_value) + " " + sth_max);
// ParametersFrag.isCorrect = false;
// } else {
// ParametersFrag.isCorrect = true;
// }
// }
// });
break;

default:
break;
}
}

关于java - 如何修复 TextWatcher 的方向变化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57867814/

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