Я пытаюсь сделать регистрационную форму приложения для Android. Я сделал адаптер базы данных и использовал MySQLite.Проверка пустых записей EditText и проверка его
Проблема, с которой я столкнулась, - это проверка записей, введенных в элементы управления EditText. Когда я нажимаю кнопку «Зарегистрироваться», информация должна храниться в базе данных, удостоверяясь, что записи не пусты, пароль подтверждения совпадает с паролем, и самое главное, что имя пользователя еще не используется. Я пробовал каждый отдельный способ сделать это, но это либо то, что я получаю ошибку времени выполнения, либо проверки не работают так, как я хочу.
final EditText unedit = (EditText) findViewById(R.id.unedit);
final EditText passedit = (EditText) findViewById(R.id.passedit);
final EditText conpassedit = (EditText) findViewById(R.id.conpassedit);
final EditText nameedit = (EditText) findViewById(R.id.nameedit);
final EditText emailedit = (EditText) findViewById(R.id.emailedit);
final EditText mobedit = (EditText) findViewById(R.id.mobedit);
Button register = (Button) findViewById(R.id.registerbutton);
register.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
String username = unedit.getText().toString();
String password = passedit.getText().toString();
String conpassword = conpassedit.getText().toString();
String name = nameedit.getText().toString();
String email = emailedit.getText().toString();
String mobileno = mobedit.getText().toString();
RegDb reg = new RegDb(Register.this);
reg.open();
String returnedUn = reg.getUn(username);
reg.close();
if (username.isEmpty()) {
unedit.setError("Username is required");
// return;
}
if (password.isEmpty()) {
passedit.setError("Password is required");
// return;
}
if (conpassword.isEmpty()) {
conpassedit.setError("Password confirmation is required");
// return;
}
if (name.isEmpty()) {
nameedit.setError("Name is required");
// return;
}
if (email.isEmpty()) {
emailedit.setError("Email is required");
// return;
}
if (mobileno.isEmpty()) {
mobedit.setError("Mobile No is required");
// return;
}
if (username.equals(returnedUn)) {
unedit.setError("Username is already used");
// return;
}
if (!conpassword.equals(password)) {
passedit.setError("Check your password");
// return;
}
if (!username.isEmpty() && !password.isEmpty()
&& !name.isEmpty() && !email.isEmpty()
&& !mobileno.isEmpty() && conpassword.equals(password)
&& !username.equals(returnedUn)) {
Dialog d = new Dialog(v.getContext());
d.setTitle("Account created.");
d.show();
} else {
return;
}
Я также использовал try-catch-finally, но проверки, похоже, не могут работать.
boolean created = true;
try {
if (!username.isEmpty() && !password.isEmpty()
&& !name.isEmpty() && !email.isEmpty()
&& !mobileno.isEmpty() && conpassword.equals(password)
&& !username.equals(returnedUn)){
RegDb entry = new RegDb(Register.this);
entry.open();
entry.createEntry(username, password, name, email,
mobileno);
entry.close();
}
} catch (Exception e) {
created=false;
Dialog d = new Dialog(v.getContext());
d.setTitle("Please check your entries.");
d.show();
} finally {
if (created) {
Dialog d = new Dialog(v.getContext());
d.setTitle("Account created.");
Intent i = new Intent(v.getContext(),
MainActivity.class);
startActivity(i);
}
}
Просьба просветить меня тем, что я делаю неправильно, и что делать.
http://stackoverflow.com/questions/6290531/check-if-edittext-is-empty –