我有9 EditText
,如果我在EditText
中插入数字时在下方显示图像我无法再在其他EditText
中插入此数字,例如,如果我插入5在et0中我不能在et1,et2,....,et8中插入另外5次我正在做一个测试但问题是如果例如插入1并且我想插入10它告诉我1重复自己。 / p>
这是我使用的代码
public void editTextWatcher(final EditText edt) {
edt.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN)
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@SuppressLint("ResourceAsColor")
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
@Override
public void afterTextChanged(Editable s) {
edt.removeTextChangedListener(this);
edt.setText("");
edt.addTextChangedListener(this);
ArrayList<String> texts = new ArrayList<String>();
texts.add(et1.getText().toString());
texts.add(et2.getText().toString());
texts.add(et3.getText().toString());
texts.add(et4.getText().toString());
texts.add(et5.getText().toString());
texts.add(et6.getText().toString());
texts.add(et7.getText().toString());
texts.add(et8.getText().toString());
texts.add(et9.getText().toString());
for (String text : texts) {
if (s.toString().equals(text)) {
if (s.toString().equals("")) {
return;
}
AlphaAnimation animation1 = new AlphaAnimation(0.2f, 1.0f);
animation1.setDuration(70);
animation1.setStartOffset(500);
animation1.setFillAfter(true);
edt.startAnimation(animation1);
edt.removeTextChangedListener(this);
edt.addTextChangedListener(this);
afficheerr1();
return;
}
}
edt.removeTextChangedListener(this);
edt.setText(s.toString());
edt.setSelection(edt.getText().length());
edt.findFocus();
edt.addTextChangedListener(this);
}
});
}
答案 0 :(得分:0)
尝试这样
输入时,如果是相同的数字设置错误信息。然后用户了解号码已经存在。
edt.setError("same number");
焦点更改侦听器再次检查最后输入的号码是否已输入。 如果在最后输入的编辑文本中输入了清除最后输入的数字,则向用户显示Toast消息。
String lastEnter="";
public void afterTextChanged(Editable s) {
lastEnter=s.toString();
}
myEditText.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View view, boolean hasFocus) {
if (hasFocus) {
for (String text : texts) {
if (lastEnter.toString().equals(text)) {
myEditText.setText("");
android.widget.Toast.makeText(getApplicationContext(), "You entered number already exists, we removed, try again", Toast.LENGTH_SHORT).show();
break;
}
}
}
}
});