我正在使用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();
        }
    }
};

最佳答案

这样使用

最初使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) {

        }
    });

09-10 02:22