2015-06-12 3 views
0

Я пытаюсь прочитать данные из недавно удаленной строки SQLite db table.Android - Проверка значения из таблицы SQLite DB

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

Это мой get код:

Я использовал эти коды, чтобы удалить значение:

public static final String DELETE_SLOT = "DELETE FROM " 
      + TABLE_CHOSEN_PARKING_SLOT + " WHERE " 
      + "_ID = " + CHOSEN_ID + ";"; 

public void deleteSlotSQL() 
     { 
      database.execSQL(ChosenSlotDatabaseHandler.DELETE_SLOT); 
     } 

И это мое условие, чтобы установить TextView значение:

if(slots == null) 
      { 
       chosenSlotView.setText("You have not parked"); 
      } 
      else 
      { 
       chosenSlotView.setText("You are parked in : " + slots); 
      } 

Сначала я подумал, что как только единственная строка будет удалена, getSlot() возвратит нуль, но мне кажется, что это не нуль из этого Log.d я побежал:

if(slots != null) 
      { 
       Log.d("notnull","not null dude"); 
      }else 
      { 
       Log.d("null","Yay null"); 
      } 

The log возвращает «не нулевой чувак» ..

Любое предложение о том, как получить значение slots так что я может установить значение TextView?

+0

Прежде всего следует избегать использования журналов, как «не нулевой чувак », вы найдете их смешными и наводящими на размышления, но через некоторое время мы не сможем написать cl ean и профессиональный код. –

+1

Нахх, этот журнал был только отладочной целью, я просто проверял его. Он будет удален позже или заменен на более профессиональное предложение :) –

ответ

1

Ваш slots определенно не является нулевым из-за этого: Строковые слоты = новый String();

должно быть

String slots = null; 
Cursor cursor = database.query(ChosenSlotDatabaseHandler.TABLE_CHOSEN_PARKING_SLOT, 
       chosenSlotColumn, null, null, null, null, null); 

      if(cursor.moveToFirst()) { 
       slots = cursor.getString(0); 
      } 
      // make sure to close the cursor 
      cursor.close(); 
      return slots; 

EDIT:

Nevermind, что String slot = null,

Попробуйте использовать:

if(slots.isEmpty()) 
     { 
      chosenSlotView.setText(notParked); 
     } 
     else 
     { 
      chosenSlotView.setText(isParked + slots); 
     } 
+0

Но внутри 'if' предложения есть' slots = cursor.getString (0); 'Как получить значение' getString (0) '? –

+0

Вы можете указать строку ChosenSlotDatabaseHandler.TABLE_CHOSEN_PARKING_SLOT? –

+0

Это 'selected_parking_slot', не так ли. Это преступник? –

1

Прежде всего, вы должны избегать использования журналов типа «не нужный чувак», вы найдете их смешными и наводящими на размышления, но через некоторое время мы не сможем написать чистый и профессиональный код. Моим вторым советом является использование констант вместо закодированных строк. Создание класса Константы и добавить туда строки

public static final String NOT_PARKED = "You have not parked" 

Мой третий совет должен взглянуть на ormlite http://logic-explained.blogspot.ro/2011/12/using-ormlite-in-android-projects.html

Если журналы в порядке, может быть, есть проблема с TextView. Попробуйте поместить текст в текстовое окно перед тем, чтобы проверить, будет ли он установлен. Также проверьте файл макета.

+0

Ах да, я изменил их на константы .. Я думал, что это будет удобно для меня, но да, модульность в виду, это было неправильно решение. 'TextView' в порядке, он все еще показывает полученное здесь значение' selectedSlotView.setText («Вы припаркованы в:« + слотах »);' –

 Смежные вопросы

  • Нет связанных вопросов^_^