在edittext中插入的数字不能插入剩余的其他edittext中

时间:2018-03-20 13:19:28

标签: android

我有9 EditText,如果我在EditText中插入数字时在下方显示图像我无法再在其他EditText中插入此数字,例如,如果我插入5在et0中我不能在et1,et2,....,et8中插入另外5次我正在做一个测试但问题是如果例如插入1并且我想插入10它告诉我1重复自己。 / p>

enter image description here

这是我使用的代码

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);

        }
    });
}

1 个答案:

答案 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;
                        }
                    }

                }

            }
        });