android 监听EditText输入字符长度

jopen 5年前

项目当中的要求很多,最近遇到了一些要求,在Dialog上用户输入密码,当密码位数达到6位并且自动判断密码是否正确,如果正确Dialog自动消失,跳转其他界面。 看似很艰难,其实只要你知道有这样一个监听就简单多了。这个监听就是addTextChangedListener(EditText s).

    public class EditTextActivity extends Activity implements OnClickListener{            private EditText adb_password;            public boolean change = false;            private LinearLayout adb_lin2;            private Button button1;            private Button button2;                        @Override            protected void onCreate(Bundle savedInstanceState) {                super.onCreate(savedInstanceState);                setContentView(R.layout.kvadb);                                adb_password = (EditText) findViewById(R.id.adb_password);                adb_lin2 = (LinearLayout) findViewById(R.id.adb_lin2);                button1 = (Button) findViewById(R.id.button1);                button2 = (Button) findViewById(R.id.button2);                                button1.setOnClickListener(this);                button2.setOnClickListener(this);                                adb_password.addTextChangedListener(mEditText);            }                        TextWatcher mEditText = new TextWatcher() {                private CharSequence temp;                                @Override                public void onTextChanged(CharSequence s, int start, int before, int count) {                    temp = s;                }                                @Override                public void beforeTextChanged(CharSequence s, int start, int count,                        int after) {                    adb_password.setVisibility(View.VISIBLE);                    adb_lin2.setVisibility(View.GONE);                }                                @Override                public void afterTextChanged(Editable s) {                    if(adb_password.getText().length() == 6){                        if(adb_password.getText().toString().equals("111111")){                            adb_password.setVisibility(View.GONE);                            adb_password.setFocusableInTouchMode(false);                            adb_password.setFocusable(false);                            adb_lin2.setVisibility(View.VISIBLE);                            adb_lin2.setFocusableInTouchMode(true);                            button1.requestFocus();                        }                    }                        }            };                                @Override            public void onClick(View v) {                switch (v.getId()) {                case R.id.button1:                    Toast.makeText(KvAdb.this, "llll", 0).show();                    break;                case R.id.button2:                            finish();                    break;                }            }        }