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

1

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

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

if(name != "" && name != null)
    tv.setText(name);
else
    tv.setText("Error");
Теги:
string
cursor
null

3 ответа

4
Лучший ответ

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

name.equals(""), вероятно, вы хотите использовать.

Кроме того, все будет работать лучше всего, если вы сделали что-то вроде этого:

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

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

Нижеприведенное решение будет работать, если вы вставляете "" в строку 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, если itz не обновляется вручную позже, вставив "" или некоторое строковое значение.

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

0

Ну Cptcecil

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

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

Спасибо

  • 0
    Какое исключение это бросило бы? Как-бы его код не выдавал никаких исключений. Фактически, он мог установить tv.setText() в null или в "" и никакие исключения не будут выброшены, tv просто будет пустым.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню