如何防止在 SQLite 数据库中保存空数据
How to prevent saving empty data in SQLite database
我不想在我的笔记应用程序中保存空数据。我已经尝试了一切,但是当我将 Edittexts 留空时,它仍然会将数据保存到我的数据库中。
我该怎么办?
这是我的 insertNote 方法
public boolean insertNote(Note note){
SQLiteDatabase db = this.getWritableDatabase();
ContentValues contentValues = new ContentValues();
contentValues.put(KEY_TITLE,note.getTitle());
contentValues.put(KEY_DESCRIPTION,note.getDescription());
contentValues.put(KEY_TIME,note.getTime());
contentValues.put(KEY_DATE,note.getDate());
long insert = db.insert(NoteDataBase.TABLE_NAME, null, contentValues);
if (insert == -1){
return false;
}else {
return true;
}
}
这是将我的笔记保存在我的 AddNoteActivity 中的方法
btn_save.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Note note = new Note();
note.setTitle(edt_title.getText().toString());
note.setDescription(edt_desc.getText().toString());
note.setDate(date);
note.setTime(time);
noteDBAdapter = new NoteDBAdapter(getApplicationContext());
boolean success = noteDBAdapter.insertNote(note);
if (success == true){
Snackbar.make(v, R.string.snack_note2,Snackbar.LENGTH_LONG).show();
}else {
Snackbar.make(v, R.string.snack_note,Snackbar.LENGTH_LONG).show();
}
}
});
我也试过这个但是这个也不管用
btn_save.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (edt_title.equals("") || edt_desc.equals("")){
Snackbar.make(v, R.string.snack_note2,Snackbar.LENGTH_LONG).show();
}else {
Note note = new Note();
note.setTitle(edt_title.getText().toString());
note.setDescription(edt_desc.getText().toString());
note.setDate(date);
note.setTime(time);
noteDBAdapter = new NoteDBAdapter(getApplicationContext());
noteDBAdapter.insertNote(note);
}
}
});
感谢任何帮助...
您正在使用直接视图 edt_title.equals("")
而不是此 edt_title.getText().toString()
。并使用 trim() 来消除像这样的前导和尾随空格。
edt_title.getText().toString().trim().
之后检查值是否为空 TextUtils.isEmpty(string)
或者组合使用 TextUitls.isEmpty(edt_title.getText().toString().trim())
首先检查编辑文本是否为空白。使用 trim() 以及@Umesh 的建议。
btn_save.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (edt_title.getText().toString().trim().equals("") || edt_desc.getText().toString().trim().equals("")){
Snackbar.make(v, R.string.snack_note2,Snackbar.LENGTH_LONG).show();
} else {
Note note = new Note();
note.setTitle(edt_title.getText().toString());
note.setDescription(edt_desc.getText().toString());
note.setDate(date);
note.setTime(time);
noteDBAdapter = new NoteDBAdapter(getApplicationContext());
noteDBAdapter.insertNote(note);
}
}
});
我不想在我的笔记应用程序中保存空数据。我已经尝试了一切,但是当我将 Edittexts 留空时,它仍然会将数据保存到我的数据库中。 我该怎么办?
这是我的 insertNote 方法
public boolean insertNote(Note note){
SQLiteDatabase db = this.getWritableDatabase();
ContentValues contentValues = new ContentValues();
contentValues.put(KEY_TITLE,note.getTitle());
contentValues.put(KEY_DESCRIPTION,note.getDescription());
contentValues.put(KEY_TIME,note.getTime());
contentValues.put(KEY_DATE,note.getDate());
long insert = db.insert(NoteDataBase.TABLE_NAME, null, contentValues);
if (insert == -1){
return false;
}else {
return true;
}
}
这是将我的笔记保存在我的 AddNoteActivity 中的方法
btn_save.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Note note = new Note();
note.setTitle(edt_title.getText().toString());
note.setDescription(edt_desc.getText().toString());
note.setDate(date);
note.setTime(time);
noteDBAdapter = new NoteDBAdapter(getApplicationContext());
boolean success = noteDBAdapter.insertNote(note);
if (success == true){
Snackbar.make(v, R.string.snack_note2,Snackbar.LENGTH_LONG).show();
}else {
Snackbar.make(v, R.string.snack_note,Snackbar.LENGTH_LONG).show();
}
}
});
我也试过这个但是这个也不管用
btn_save.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (edt_title.equals("") || edt_desc.equals("")){
Snackbar.make(v, R.string.snack_note2,Snackbar.LENGTH_LONG).show();
}else {
Note note = new Note();
note.setTitle(edt_title.getText().toString());
note.setDescription(edt_desc.getText().toString());
note.setDate(date);
note.setTime(time);
noteDBAdapter = new NoteDBAdapter(getApplicationContext());
noteDBAdapter.insertNote(note);
}
}
});
感谢任何帮助...
您正在使用直接视图 edt_title.equals("")
而不是此 edt_title.getText().toString()
。并使用 trim() 来消除像这样的前导和尾随空格。
edt_title.getText().toString().trim().
之后检查值是否为空 TextUtils.isEmpty(string)
或者组合使用 TextUitls.isEmpty(edt_title.getText().toString().trim())
首先检查编辑文本是否为空白。使用 trim() 以及@Umesh 的建议。
btn_save.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (edt_title.getText().toString().trim().equals("") || edt_desc.getText().toString().trim().equals("")){
Snackbar.make(v, R.string.snack_note2,Snackbar.LENGTH_LONG).show();
} else {
Note note = new Note();
note.setTitle(edt_title.getText().toString());
note.setDescription(edt_desc.getText().toString());
note.setDate(date);
note.setTime(time);
noteDBAdapter = new NoteDBAdapter(getApplicationContext());
noteDBAdapter.insertNote(note);
}
}
});