首页 > 解决方案 > 如何在登录活动中验证用户名

问题描述

我对这个Android很陌生,所以如果这个问题会让你发笑,我很抱歉。

最近我正在尝试一个关于“使用 SQLite 创建登录屏幕”的 Android 教程。我成功地创建了该登录以及注册和 SQLite DB。我想知道的是如何将文本输入从电子邮件更改为用户名。

我已经搜索了如何将验证从电子邮件更改为用户名的代码,但仍然不明白。

仅供参考,我已经在数据库中创建了用户名表。

public boolean validate() {
    boolean valid = false;

    // Get values from EditText fields
    String Email = editTextUsername.getText().toString();
    String Password = editTextPassword.getText().toString();

    // Handling validation for Email Address
    if (!android.util.Patterns.EMAIL_ADDRESS.matcher(Email).matches()){
        valid = false;
        textInputLayoutUsername.setError("Input Correct Username");
    } else {
        valid = true;
        textInputLayoutUsername.setError(null);
    }
}

这是我的登录屏幕。

在此处输入图像描述

我不得不将文本从电子邮件更改为用户名EditText。但是当我运行它时,EditText总是验证电子邮件。我认为这条线有一些需要改变的地方。

!android.util.Patterns.EMAIL_ADDRESS.matcher(Email).matches()

感谢之前的所有帮助,我真的很感激。

标签: javaandroidvalidationauthentication

解决方案


您当前的实现正在验证来自 的输入editTextUsername并尝试验证输入是否是有效的电子邮件地址。如果您不希望这样,只需在您的代码中删除此特定视图的验证,如下所示。

public boolean validate() {
    boolean valid = false;

    //Get values from EditText fields
    String userName = editTextUsername.getText().toString();
    String Password = editTextPassword.getText().toString();

    // Handle the validation for the user name. 
    // Let us assume, you just want to validate that the user has put something as a user name
    if(userName.length() > 0) {
        valid = true;
        textInputLayoutUsername.setError(null);
    } else {
        valid = false;
        textInputLayoutUsername.setError("Please provide the user name.");
    }
}

您可以随时更改验证的逻辑。我只是展示了一个例子。我希望这会有所帮助!


推荐阅读