我在用戶在SQLite數據庫中的應用程序中註冊時存儲用戶輸入的信息,但該應用程序崩潰時出現了我提交電子郵件地址時出現的錯誤。如果這是原因,你能告訴我如何糾正它嗎?如果沒有,請告訴我正確的原因和解決方案。將電子郵件地址提交給SQLite數據庫時出錯
我的Java文件:
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);
}
}
編輯:添加錯誤日誌
是什麼讓你覺得你不應該在問題中包含錯誤日誌? – Denny
請添加錯誤日誌。 –
糟糕。抱歉。我截取了截圖,但忘了添加 –