код не проверяется на нулевые значения - PullRequest
1 голос
/ 10 мая 2011

Я написал приведенный ниже код для проверки значения в строке перед сохранением его в базе данных.

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" и сохраняет нулевое значение в базе данных.

Разве это не правильный способ проверки ??

1 Ответ

1 голос
/ 10 мая 2011

Я думаю, что ваша строка пуста, а не нуль.Поэтому добавьте проверку длины строки в условие 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();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...