- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试运行一个方法(register();),该方法检查注册页面中的字段是否为空。我想检查电子邮件是否存储在 SQLite 数据库中,如果没有,则将电子邮件和密码存储在数据库中。以下是我的代码:
数据库(用户方法)
public boolean insertUser(UserModel userModel)
{
String password;
password = getSecurePassword(userModel.getPassword(), "Easy Pill");
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("FIRSTNAME", userModel.getFirstName());
values.put("LASTNAME", userModel.getLastName());
values.put("EMAIL", userModel.getEmail());
values.put("AGE", userModel.getAge());
values.put("PASSWORD", password);
long result = db.insert(TABLE_USER, null, values );
if(result == -1)
return false;
else
return true;
}
public boolean insertUserData(String email, String password){
ContentValues contentValues = new ContentValues();
contentValues.put("EMAIL", email);
contentValues.put("PASSWORD", password);
long result = db.insert("USER", null, contentValues );
if(result == -1)
return false;
else
return true;
}
public Boolean getLoginInfo(UserModel user){
SQLiteDatabase db = this.getReadableDatabase();
String password;
password= getSecurePassword(user.getPassword(), "Easy Pill");
String query = "Select EMAIL, PASSWORD FROM " + TABLE_USER + " WHERE EMAIL = '"+user.getEmail() +"' AND PASSWORD= '"+password+"'";
Cursor resultSet = db.rawQuery(query, null);
if(resultSet.getCount()== 0)
return false;
else
return true;
//resultSet.close();
}
}
注册 Activity
public class RegisterActivityController extends AppCompatActivity {
private EditText firstName, lastName, dateOfBirth, email, password, confirmPassword;
private String first, last, birth, emailAdd, passwd, conPasswd;
Calendar myCalendar = Calendar.getInstance();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_register);
firstName = findViewById(R.id.firstName);
lastName = findViewById(R.id.lastName);
dateOfBirth = findViewById(R.id.dateOfBirth);
email = findViewById(R.id.email);
password = findViewById(R.id.password);
confirmPassword = findViewById(R.id.confirmPassword);
Button createButton = findViewById(R.id.createButton);
createButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
register();
}
});
final DatePickerDialog.OnDateSetListener date = new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear,
int dayOfMonth) {
// TODO Auto-generated method stub
myCalendar.set(Calendar.YEAR, year);
myCalendar.set(Calendar.MONTH, monthOfYear);
myCalendar.set(Calendar.DAY_OF_MONTH, dayOfMonth);
updateLabel();
}
};
dateOfBirth.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
new DatePickerDialog(RegisterActivityController.this, date, myCalendar
.get(Calendar.YEAR), myCalendar.get(Calendar.MONTH),
myCalendar.get(Calendar.DAY_OF_MONTH)).show();
}
});
}
private void updateLabel() {
String myFormat = "MM/dd/yy";
SimpleDateFormat sdf = new SimpleDateFormat(myFormat, Locale.US);
dateOfBirth.setText(sdf.format(myCalendar.getTime()));
}
public void register() {
initialize();
if (!validate()) {
Toast.makeText(this, "Failed to create account.", Toast.LENGTH_SHORT).show();
} else {
onSignupSuccess();
}
}
public void initialize() {
first = firstName.getText().toString().trim();
last = lastName.getText().toString().trim();
birth = dateOfBirth.getText().toString().trim();
emailAdd = email.getText().toString().trim();
passwd = password.getText().toString().trim();
conPasswd = confirmPassword.getText().toString().trim();
}
public boolean validate() {
boolean valid = true;
if (firstName.length() == 0 || firstName.length() > 32) {
firstName.setError("Please enter a valid first name.");
valid = false;
}
if (lastName.length() == 0 || lastName.length() > 32) {
lastName.setError("Please enter a valid last name.");
valid = false;
}
if (dateOfBirth.length() == 0 || TextUtils.isEmpty(dateOfBirth.getText().toString())) {
dateOfBirth.setError("Please enter your date of birth.");
valid = false;
}
if (email.length() == 0 || !Patterns.EMAIL_ADDRESS.matcher(emailAdd).matches()) {
email.setError("Please enter a valid Email Address.");
valid = false;
}
if (password.length() == 0) {
password.setError("Please enter password.");
valid = false;
}
if (confirmPassword.length() == 0 || !passwd.equals(conPasswd)) {
confirmPassword.setError("Please reenter password or make sure passwords match.");
valid = false;
}
return valid;
}
public void onSignupSuccess() {
Toast.makeText(getBaseContext(), "User account: " + first + " " + last + ", created.", Toast.LENGTH_SHORT).show();
}
}
注册.xml
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:android="http://schemas.android.com/apk/res/android">
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
tools:context=".login.activity.controllers.RegisterActivityController">
<EditText
android:id="@+id/firstName"
android:layout_width="0dp"
android:layout_height="40dp"
android:layout_marginEnd="32dp"
android:layout_marginStart="32dp"
android:layout_marginTop="32dp"
android:ems="10"
android:hint="@string/first_name"
android:inputType="textPersonName"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<EditText
android:id="@+id/lastName"
android:layout_width="0dp"
android:layout_height="40dp"
android:layout_marginEnd="32dp"
android:layout_marginStart="32dp"
android:layout_marginTop="16dp"
android:ems="10"
android:hint="@string/last_name"
android:inputType="textPersonName"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/firstName" />
<EditText
android:id="@+id/dateOfBirth"
android:clickable="true"
android:focusable="false"
android:layout_width="0dp"
android:layout_height="40dp"
android:layout_marginEnd="32dp"
android:layout_marginStart="32dp"
android:layout_marginTop="16dp"
android:ems="10"
android:hint="@string/date_of_birth"
android:inputType="date"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/lastName" />
<EditText
android:id="@+id/email"
android:layout_width="0dp"
android:layout_height="40dp"
android:layout_marginEnd="32dp"
android:layout_marginStart="32dp"
android:layout_marginTop="16dp"
android:ems="10"
android:hint="@string/add_email"
android:inputType="textEmailAddress"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/dateOfBirth" />
<EditText
android:id="@+id/password"
android:layout_width="0dp"
android:layout_height="40dp"
android:layout_marginEnd="32dp"
android:layout_marginStart="32dp"
android:layout_marginTop="16dp"
android:ems="10"
android:hint="@string/add_password"
android:inputType="textPassword"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/email" />
<EditText
android:id="@+id/confirmPassword"
android:layout_width="0dp"
android:layout_height="40dp"
android:layout_marginEnd="32dp"
android:layout_marginStart="32dp"
android:layout_marginTop="16dp"
android:ems="10"
android:hint="@string/confirm_password"
android:inputType="textPassword"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/password" />
<Button
android:id="@+id/createButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"
android:layout_marginEnd="148dp"
android:layout_marginStart="148dp"
android:layout_marginTop="24dp"
android:text="@string/create_account"
android:onClick="touchRegisterUser"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/confirmPassword" />
</android.support.constraint.ConstraintLayout>
</ScrollView>
我对此进行了大量研究并尝试了一些不同的方法,但我需要在注册 Activity 中运行注册方法,如果一切正常,那么我需要检查电子邮件和密码,然后存储它们。任何和所有的帮助将不胜感激。
最佳答案
首先,您可以将以下方法添加到数据库(用户方法)类中:-
public boolean isEmailUnique(String email) {
int count=0;
String whereclause = "EMAIL=?";
String[] whereargs = new String[]{email};
Cursor csr =db.query("USER",null,whereclause,whereargs,null,null,null);
count = csr.getCount();
csr.close();
return count < 1;
}
然后您可以在注册方法中的适当位置包含一个检查,类似于
if (!db.isEmailUnique(emailAdd))
{
email.setError("Please enter a Unique Email Address.");
valid = false;
}
或者你可以改变:-
if (email.length() == 0 || !Patterns.EMAIL_ADDRESS.matcher(emailAdd).matches()) {
email.setError("Please enter a valid Email Address.");
valid = false;
}
成为:-
if (email.length() == 0 || !Patterns.EMAIL_ADDRESS.matcher(emailAdd).matches() || !db.isEmailUnique(emailAdd)) {
email.setError("Please enter a valid Email Address.");
valid = false;
}
您似乎也没有调用 insertUser
方法来实际添加用户。
我建议对寄存器方法进行以下更改:-
public void register() {
initialize();
if (!validate()) {
Toast.makeText(this, "Failed to create account.", Toast.LENGTH_SHORT).show();
} else {
If (db.insertUser(emailAdd,passwd)) {
onSignupSuccess();
} else {
Toast.makeText(this, "Failed to create account (insert into database did not insert a row.).", Toast.LENGTH_SHORT).show();
}
}
}
关于java - 检查电子邮件是否在数据库中,否则将用户名和密码存储在数据库中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49833221/
在电子邮件中 Received: header 可以合法地多次出现,并且具有互斥的值... Received: three.example.com Received: two.example.co
是否有任何代码/宏可以合并到我的 sas 程序中,一旦我的 sas 代码在运行时发生错误,它会立即给我发送电子邮件? 另外,这封电子邮件是否可能包含发生的错误? 最佳答案 是的……也不是…… 这是可能
我有一个包含三个 td 的表格,每个表格都需要包含图像。 td 的宽度和高度是固定的,但图像大小可以变化。目标是在不扭曲单元格或图像本身的情况下拟合图像。不能使用 background-image 属
首先非常感谢大家过去提出的宝贵建议,我们正在创建一个应用程序,在某些事件中想要将电子邮件/短信发送到我们已经尝试过 openURL 调用的指定电话号码,但它会打开现有的内置iPhone 的电子邮件/短
我正在使用 apache commons mail 发送电子邮件。不幸的是,我遇到了以下异常: org.apache.commons.mail.EmailException: Sending the
我可以在我的 ~/.hgrc 文件中设置我常用的电子邮件地址,但是有没有办法为一个 hg 项目指定我想被称为不同的名称/电子邮件(类似到项目目录中的 git 的 .git/config 文件覆盖 ~/
$message = 'New user registration\n\n There is a new submission on the site and below are the detail
使用 outlook 我可以发送在邮件正文中插入图像的电子邮件(不是作为附件)。我如何使用 PHP 中的 mail() 函数来做到这一点? 最佳答案 我会推荐 Swift Mailer: http:/
以下代码的目标是将所选图表粘贴到我的文本下方的电子邮件正文中。但是,它继续将其粘贴在我的文本上方。我该如何更改它以使其粘贴在下面?谢谢! Set OutApp = CreateObject("Outl
首先,我知道不建议使用正则表达式发送电子邮件,但我必须对此进行测试。 我有这个正则表达式: \b[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b 在 Java 中,我这样
如何在没有任何第三方程序的情况下从 Python 发送电子邮件? 最佳答案 使用Python email和 smtplib模块。示例:http://docs.python.org/library/em
我目前正在使用此代码在 html 表中显示 mysql 记录 "; . . echo ' '. $row["Email1"] . ' '; . . echo ""; }
在电子邮件中使用 HTML 时,是否可以仅将链接的一部分着色为特定颜色? 我试过: red part of link normal part ...我知道如果我拆分链接是可能的,但我正在努力将它们保持
我正在处理一封 html 电子邮件,我有一个非常简单的元素 (ul),我想将它移到页面下方。 我检查了campaign monitor's guide并且不支持负边距,或者 position: abs
我使用表格创建了我的 HTML 电子邮件,该表格有一个背景图像,在大多数基于 Web 的电子邮件客户端中都能正常显示。 我正在努力让背景图片显示在 Outlook 中。 我最近的尝试,我尝试了以下操作
我对 PHP/CSS 和一般编程还很陌生。 我想改变文本区域中文本的格式,就像在这里所做的那样,例如,当为突出显示的文本添加标签“代码示例”时,它会缩进它,或者当将它设置为粗体时,它会加粗它。 这样做
嘿,你能推荐我哪些 C++ 库或类可用于在 C++ 中通过 SMTP 发送电子邮件。我在 Windows 平台上。我需要一个支持附件和 SSL 连接的库。有哪些可用选项。我不打算实现我自己的 :) 问
想知道是否可以在 HTML 电子邮件中包含一个表单。我要做的就是将图像输入提交到 Paypal 购买页面。我希望它直接进入 Paypal ,而无需先进入营销页面... 我会拥有 paypal 要求的完
我负责“ reshape ”我们的 IT 部门通信。我想用纯 HTML/CSS 来发送我们的电子邮件通知,以确保它的可移植性。 下面是代码,它在 Outlook 中看起来完全符合我的要求,但是一旦将内
我正在学习编写响应式电子邮件模板。目前我有:https://jsfiddle.net/q12yg2z6/
我是一名优秀的程序员,十分优秀!