Mir Speicherung der Daten durch den Benutzer eingegeben werden, wenn er auf der App in einer SQLite-Datenbank registriert, aber die App stürzt mit einem Fehler, wenn ich die E-Mail-Adresse einreichen aufzutreten scheint. Wenn das der Grund ist, kannst du mir sagen, wie ich es korrigieren kann? Wenn nicht, bitte sagen Sie mir den richtigen Grund und die Lösung.Fehler beim Senden E-Mail-Adresse an SQLite Datenbank
Meine Java-Datei:
public class MainActivity extends AppCompatActivity {
AutoCompleteTextView txtmobileno, txtemail, txtname,txtuname;
EditText txtpass;
private SQLiteDatabase sqLiteDatabase;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
constraintLayout = (ConstraintLayout)findViewById(R.id.constraintlayout);
txtemail = (AutoCompleteTextView) findViewById(R.id.txtemail);
txtmobileno = (AutoCompleteTextView) findViewById(R.id.txtmobileno);
txtname = (AutoCompleteTextView) findViewById(R.id.txtname);
txtuname = (AutoCompleteTextView)findViewById(R.id.txtuname);
txtpass = (EditText)findViewById(R.id.txtpass);
btnSignUp = (ImageButton) findViewById(R.id.btnSignUp);
btnClear = (ImageButton) findViewById(R.id.btnClear);
createDatabase();
btnSignUp.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String email = txtemail.getText().toString();
String mobileno = txtmobileno.getText().toString();
String name = txtemail.getText().toString();
if (name.trim().equals(""))
txtname.setError("Please enter your name");
else if (email.trim().equals(""))
txtemail.setError("Please enter email Address");
else if (!email.contains("@") || !email.contains("."))
txtemail.setError("Please enter a valid email Address");
else if (mobileno.trim().length() < 10)
txtmobileno.setError("Not a valid mobile no"); // I'm finding solution to validate mobile no
else {
insertIntoDB();
Snackbar snackbar = Snackbar
.make(constraintLayout, "Success", Snackbar.LENGTH_LONG)
.setAction("HIDE", new View.OnClickListener() {
@Override
public void onClick(View view) {
}
});
snackbar.show();
}
}
});
btnClear.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
txtemail.setText("");
txtmobileno.setText("");
txtname.setText("");
txtname.setError(null);
txtemail.setError(null);
txtmobileno.setError(null);
}
});
txtmobileno.setOnEditorActionListener(new EditText.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
if(actionId == EditorInfo.IME_ACTION_DONE){
btnSignUp.performClick();
return true;
}
return false;
}
});
}
private void createDatabase(){
sqLiteDatabase = openOrCreateDatabase("UserDatabase", Context.MODE_PRIVATE,null);
//sqLiteDatabase.execSQL("IF EXISTS (SELECT * FROM USERS) DROP TABLE USERS");
sqLiteDatabase.execSQL("CREATE TABLE IF NOT EXISTS USERS(ID INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, NAME VARCHAR(30)," +
"USERNAME VARCHAR(15), EMAIL TEXT, PASSWORD VARCHAR(15), MOBILE VARCHAR(11))");
}
protected void insertIntoDB(){
String name, uname, email, password, mobile;
name = txtname.getText().toString();
uname = txtuname.getText().toString();
email = txtemail.getText().toString();
password = txtpass.getText().toString();
mobile = txtmobileno.getText().toString();
String query = "INSERT INTO USERS VALUES(" + name +"," + uname + "," + email + "," + password + "," + mobile + ");";
sqLiteDatabase.execSQL(query);
}
}
EDIT: Hinzugefügt Fehlerprotokoll
Was Sie denken, Sie sollten das Fehlerprotokoll in der Frage nicht enthalten? – Denny
Bitte Fehlerprotokoll hinzufügen. –
Hoppla. Es tut uns leid. Ich habe den Screenshot gemacht, aber vergessen, –