我已经编写了以下代码来验证字符串中的值,然后再将其保存到数据库中。
EditText editText2 = (EditText) this.findViewById(R.id.editText1);
setTime = editText2.getText().toString();
Log.d(setTime, "This is the setTime value");
if(setTime == null)
{
Toast.makeText(Settings.this, "Time cannot be NULL", Toast.LENGTH_LONG).show();
}
else if(setTime != null)
{
cv.put(DatabaseHelper.TIME, setTime);
db.insert("finalP", DatabaseHelper.TIME, cv);
db.close();
editText2.setText("");
Toast.makeText(Settings.this, "Time saved", Toast.LENGTH_LONG).show();
}
但是即使“setTime”包含空值,“if”部分也会被跳过,控件直接进入“else”部分,并将空值保存在数据库中。
这不是验证的正确方法吗?
答案 0 :(得分:1)
我认为你的字符串是空的而不是null。因此,也要为if子句添加字符串长度检查。
EditText editText2 = (EditText) this.findViewById(R.id.editText1);
setTime = editText2.getText().toString();
Log.d(setTime, "This is the setTime value");
if(setTime == null || setTime.length() == 0) {
Toast.makeText(Settings.this, "Time cannot be NULL", Toast.LENGTH_LONG).show();
} else {
cv.put(DatabaseHelper.TIME, setTime);
db.insert("finalP", DatabaseHelper.TIME, cv);
db.close();
editText2.setText("");
Toast.makeText(Settings.this, "Time saved", Toast.LENGTH_LONG).show();
}