【发布时间】:2021-12-12 23:55:10
【问题描述】:
请阅读我的问题描述。我没有找到正确的方法来问这个问题。但是描述会解释我的问题。
好的,我有一个 EditText ,我希望当用户在 EditText 中输入大于 500 的数字时,应该可以看到 drawable(勾号)(表明输入的数字是正确的) .
输入数字后假设用户退格并删除输入的数字(使数字小于500),drawable应该是不可见的。
我使用Textwatcher 完成了此操作,但问题是当用户开始删除输入的数字时,我收到错误并且应用程序崩溃。示例 - 如果我输入 500 ... 一切正常,drawable 也可见。现在我删除了 500 的 1 个零,现在 editext 的值为 50 并且 drawable 也是不可见的。现在我删除另一个 0 ,edittext 现在的值为 5 。到这里一切正常。 现在当我删除 5 时,应用程序崩溃并给出错误。请有人告诉我我在这里做错了什么?
活动截图。
这就是我正在做的..
ets2.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
if((Long.parseLong(ets2.getText().toString().trim())<500) || (ets2.length()==0) /*||(TextUtils.isEmpty(ets2.getText().toString()))*/){
step2tv.setCompoundDrawablesWithIntrinsicBounds(0, 0, 0, 0);
invalidtv.setVisibility(View.VISIBLE);
ets2.setError("Please enter amount \n greator than 500");
} else{
step2tv.setCompoundDrawablesWithIntrinsicBounds(0, 0,R.drawable.ic_checkgreen, 0);
}
}
@Override
public void afterTextChanged(Editable editable) {
}
});
【问题讨论】:
标签: android android-studio android-edittext