Как я могу проверить, является ли строка, которую я возвратил из курсора, пустой или нулевой в курсоре Android? - PullRequest
1 голос
/ 10 августа 2010

Это мой код, он всегда попадает в другое, даже когда я знаю, что входящее значение (через отладчик) пусто.

name = cursor.getString(cursor.getColumnIndex("Genus")) + " " + cursor.getString(cursor.getColumnIndex("Species"));

if(name != "" && name != null)
    tv.setText(name);
else
    tv.setText("Error");

Ответы [ 3 ]

4 голосов
/ 10 августа 2010

При сравнении объектов необходимо использовать метод Object.equals (Object). Использование == или! = С объектами вернет true, только если оба объекта ссылаются на одну и ту же вещь. Вот почему вы проваливаетесь к остальному.

name.equals ("") - это то, что вы хотите использовать.

Также, возможно, все будет работать лучше, если вы сделаете что-то вроде этого:

if(name != null && !"".equals(name))
  tv.setText(name);
else
  tv.setText("Error");
1 голос
/ 25 июля 2012

Я знаю, что это старый вопрос, который по-прежнему вносит свой вклад, чтобы иметь альтернативное решение

Приведенное ниже решение будет работать, если вы вставляете "" в строку ur во время его обновления или вставки новой записидля пустого поля.

if(name.length() > 0 )
  tv.setText(name);
else
  tv.setText("Error");

Приведенное ниже решение будет работать, если вы вставляете null в строку ur во время его обновления или вставляете новую запись для пустого поля (скажем, edittext).или если в базе данных уже создана строка без записи ..

if(name != null )
  tv.setText(name);
else
  tv.setText("Error");

база данных принимает пустую ячейку как null, если позднее она не обновляется вручную путем вставки "" или какого-либо строкового значения.

У меня оба работали.

0 голосов
/ 10 августа 2010

Хорошо Cptcecil

использовать механизм обработки ошибок try - catch ... вместо if ... else.

Всякий раз, когда вы будете пытаться читать с пустого курсора ... он выдаст исключениечто вы можете поймать и ответить соответственно, не нарушая вашего приложения.

Спасибо

...