java - 如何在登录活动中验证用户名
问题描述
我对这个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()
感谢之前的所有帮助,我真的很感激。
解决方案
您当前的实现正在验证来自 的输入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.");
}
}
您可以随时更改验证的逻辑。我只是展示了一个例子。我希望这会有所帮助!
推荐阅读
- ios - 在 swiftUI 中部分更新 UI
- android-11 - 来自具有 API 30 (android 11) 的三星物理模拟器的错误 Android 11 -> java.net.SocketTimeoutException
- java - 有谁知道是否可以更改下载请求通知的内容标题?如何?
- typescript - vuejs + typescript项目中导入interactjs会产生类型检查错误
- angular - Angular uri路由的Nginx后备
- javascript - 方括号如何在下面的“FizzBuzz”代码中求值?
- python-3.x - 如何从同一个 python 脚本/notebook 并行运行多个 AUTOML 框架?
- c# - 如何更改播放器位置 ontriggerenter unity 2d c#
- groovy - 如何在groovy中组合多个json数组
- spring-boot - 无法在 Spring Boot 中测试 SessionRegistry