2015-08-27 1 views
0

У меня есть set-Method setSelected(), которые ожидают логического. SQLite не в состоянии хранить логические значения, так что я решил сделать это как целое, и преобразовать в целое логическое:Как заполнить boolean set-Method со значением int

values.put(COLUMN_SELECTED, (member.isSelected()) ? 1 : 0); 

Это работало уже для меня. Но теперь я хочу, чтобы установить значение снова, но как я могу передать Int к методу, который требует логического значения:

member.setSelected(cursor.getColumnIndex(COLUMN_SELECTED)); 

error-> setSelection (Boolean) в члене не может быть применен к (INT)

+0

@KevinEsche 'перегрузка' ?? Почему здесь ? –

+0

@ sᴜʀᴇsʜᴀᴛᴛᴀ это не обязательно, но вам не придется переписывать такое же сравнение, если вы будете использовать его в нескольких местах в коде. – SomeJavaGuy

ответ

0

ContentValues поддерживает логические значения и автоматически преобразует в 0/1 при записи в базу данных.

Чтобы преобразовать число в логическое значение, просто сравнить его с нуля:

car.setSelected(cursor.getColumnIndex(COLUMN_SELECTED) != 0); 
+0

Спасибо .. работает!: D – AlbertFragt

0
car.setSelected(cursor.getColumnIndex(COLUMN_SELECTED)==1 ? true : false); 

Используйте тот же условный оператор Int

или просто

car.setSelected(cursor.getColumnIndex(COLUMN_SELECTED)==1); // true or false 
Смежные вопросы