0

我正在使用 EditText 制作验证表单。我有三个 EditText 框,我想确保用户ed1在进入ed2. 所以,我想阻止用户去ed2除非他们把东西放进去ed1。如果ed1为 null,则光标不会转到ed2. 有人能帮我吗?

final EditText ed1 = (EditText) findViewById(R.id.one);
final EditText ed2 = (EditText) findViewById(R.id.two);

TextWatcher watcher = new TextWatcher() {
    public void afterTextChanged(Editable s) {
        if (ed1.getText().toString().equals("")) {
            ed2.requestFocus();
        }
    }
};
4

2 回答 2

0
  1. 用于TextUtil检查空输入。
  2. 使用editText.setEnabled()方法或editText.setActivated()根据用途。此外,使用 drawable.xml 更改样式View

        final EditText ed1 = (EditText) findViewById(R.id.one);
        final EditText ed2 = (EditText) findViewById(R.id.two);
    
        TextWatcher watcher = 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) {
    
            }
    
            public void afterTextChanged(Editable s) {
                if (TextUtils.isEmpty(ed1.getText())) {
                    //ed2.requestFocus();
                    ed2.setEnabled(false);
                }
            }
        };
    

让我知道它是否对您有帮助。

于 2017-06-30T17:01:32.933 回答
0

像这样使用

最初将 ed2 设为禁用

android:enabled="false"

并在类文件中使用

   ed1.addTextChangedListener(new TextWatcher() {
        @Override
        public void beforeTextChanged(CharSequence s, int start, int count, int after) {

        }

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

            if (s.length()>0) {
                ed2.setEnabled(true);
            }
            else
            {
                ed2.setEnabled(false);
            }

        }

        @Override
        public void afterTextChanged(Editable s) {

        }
    });
于 2017-06-30T17:03:17.907 回答