android - Android 中 EditText 的电子邮件验证

标签 android android-edittext email-validation

我编写了以下登录代码,但是当我在电子邮件 ID 后输入“\”时,它接受并成功登录(它不接受任何其他符号或字符,只接受“\”)。

我不希望它用“\”登录。`

@Override
public void onCreate(Bundle savedInstanceState) {
    try {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        getWindow().setSoftInputMode(
                WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
        setContentView(R.layout.main);
        WiztangoBaseApplication.InitDialogBox(WiztangoActivity.this);

        this.pref = PreferenceManager.getDefaultSharedPreferences(this);
        loginStatus = (TextView)findViewById(R.id.login_status);
        register = (Button) findViewById(R.id.btnregister);
        register.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                RegisterIntent();
            }
        });

        login = (Button) findViewById(R.id.btlogin);
        password = (EditText) findViewById(R.id.txtPwd);
        username = (EditText) findViewById(R.id.txtemail);
        saveLoginCheckBox = (CheckBox)findViewById(R.id.saveLoginCheckBox);
        pref = getSharedPreferences(Constants.PREFS_NAME,
                MODE_PRIVATE);
        String usernamestr = pref.getString(Constants.PREF_USERNAME, "");
        String passwordsharestr = pref.getString(Constants.PREF_PASSWORD,
        "");
        username.setText(usernamestr);
        password.setText(passwordsharestr);
        saveLogin = pref.getBoolean("saveLogin", false);
        if (saveLogin == true) {
            username.setText(usernamestr);
            password.setText(passwordsharestr);
            saveLoginCheckBox.setChecked(true);
        }

        login.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                try {
                    //Constants.clearInfo();
                    getSharedPreferences(Constants.PREFS_NAME, MODE_PRIVATE)
                    .edit()
                    .putString(Constants.PREF_USERNAME,
                            username.getText().toString())
                            .putString(Constants.PREF_PASSWORD,
                                    password.getText().toString())
                                    .putString(Constants.PREF_CHECKED, "TRUE")
                                    .commit();


                    if (username.getText().toString().trim().equals("")) {
                        username.setError(Html
                                .fromHtml("Please Enter Username"));
                        username.requestFocus();
                    } else if (password.getText().toString().trim()
                            .equals("")) {
                        password.setError(Html
                                .fromHtml("Please Enter Password"));
                        password.requestFocus();
                    } else {
                        if (Constants
                                .checkInternetConnection(WiztangoActivity.this)) {
                            Constants.userpass = password.getText()
                            .toString();
                            new AuthenticData().execute();
                        } else {
                            WiztangoBaseApplication.ShowThisDialog("Error",
                            "Please check internet connection.");
                        }

                        if (saveLoginCheckBox.isChecked()) {

                            prefEditor.putBoolean("saveLogin", true);
                            prefEditor.putString(Constants.PREF_USERNAME,
                                    username.getText().toString());
                            prefEditor.putString(Constants.PREF_PASSWORD,
                                    password.getText().toString());
                            saveLoginCheckBox.setChecked(true);
                            prefEditor.commit();
                        } else {

                            SharedPreferences mPreferences = getSharedPreferences(Constants.PREFS_NAME, MODE_PRIVATE); 
                            SharedPreferences.Editor editor=mPreferences.edit();

                            editor.remove(Constants.PREF_USERNAME);
                            editor.remove(Constants.PREF_PASSWORD);
                            editor.commit();


                        }
                    }

                } catch (Exception e) {
                    Log.e("Exception In Wiztango/", e.toString());
                    e.printStackTrace();
                }
            }
        });
    } catch (Exception e) {
        Log.e("Exception In Wiztango/", e.toString());
        e.printStackTrace();
    }
}

最佳答案

内置模式提供电子邮件验证,例如:

if (!android.util.Patterns.EMAIL_ADDRESS.matcher(emailStr).matches() && !TextUtils.isEmpty(emailStr)) {
    emailEditText.setError("Invalid Email");
    emailEditText.requestFocus();
}

关于android - Android 中 EditText 的电子邮件验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20883093/

相关文章:

android - 从 Android 路径中带有空格的 URL 下载图像

android - Admob 工作不给我钱

android - iPhone : is it possible to draw outside of a view? 中的 EditText 放大镜

ios - 使用适用于 iOS 的 firebase 验证电子邮件

php - 解析电子邮件表单 "To"字段的正则表达式

android - 在回收站 ListView 项目之间添加了大空间

android - 如何在数据库机房中保存枚举字段?

android - 在 Butterknife 中使用多种方法将多个 View 绑定(bind)到一个监听器

android - Galaxy Tab 中覆盖 EditText 的虚拟键盘

ios - 处理 Parse 中的某些错误