2010-11-03 40 views

Trả lời

322

Đó là:

boolean value = cursor.getInt(boolean_column_index) > 0; 
+26

cursor.getInt (boolean_column_index)! = 0 là tiêu chuẩn hơn C. – Buttink

+1

@Buttink '> 0' ngắn tính bằng byte dù : P –

43

Không có loại dữ liệu bool trong SQLite. Sử dụng một int mà bạn sửa chữa 0 hoặc 1 để đạt được hiệu ứng đó. Xem số datatypes reference trên SQLite 3.0.

5

Bạn cũng có thể sử dụng

boolean value =cursor.getString(boolean_column_index).equals("True"); 
+5

bằng() không chứa –

18
boolean value = (cursor.getInt(boolean_column_index) == 1); 
+0

Mặc dù không chính xác tương ứng với câu hỏi này (Alex là gần nhất), đó là một câu trả lời tuyệt vời và tôi sẽ sử dụng câu trả lời này. –

8

Hầu hết các câu trả lời ở đây có thể dẫn đến NumberFormatExceptions hoặc "điều hành là undefined cho các loại null int" nếu cột bạn lưu trữ int được cho phép cũng giữ null. Cách đàng hoàng để làm điều này sẽ được sử dụng

Boolean.parseBoolean(cursor.getString(booleanColumnIndex));` 

mặc dù bây giờ bạn được giới hạn lưu trữ xâu "true" và "false" chứ không phải là 0 hoặc 1.

+5

Điều này không hoạt động. Boolean.parseBoolean nhận các chuỗi "true" hoặc "false". Nếu bạn đã lưu trữ boolean của bạn là 0 hoặc 1, bạn sẽ luôn bị sai. – Gober

+0

Nếu những gì Gober nói là đúng, thì câu trả lời này xứng đáng được giảm giá –

+0

Ah, anh ấy đúng. Tôi nghĩ rằng sự rõ ràng của kết quả outweighs có để lưu trữ các chuỗi. – Sojurn

3

Một lựa chọn khác

boolean value = (cursor.getString(column_index)).equals("1"); 
6

Thực hiện tìm thấy tại Ormlite Cursor cũng kiểm tra Null mà không có câu trả lời nào khác thực hiện.

public boolean getBoolean(int columnIndex) { 
     if (cursor.isNull(columnIndex) || cursor.getShort(columnIndex) == 0) { 
      return false; 
     } else { 
      return true; 
     } 
    } 
2

boolean b = (cursor.getInt (cursor.getColumnIndex ("item"))! = 0);

3

boolean kiểu dữ liệu không có sẵn trong Cursor.

bạn sẽ nhận được kết quả theo số int, vì vậy bạn cần chuyển đổi giá trị int thành boolean.

Bạn có thể sử dụng

boolean b = cursor.getInt(boolean_column_index) > 0; 

hoặc

boolean b = (cursor.getInt(boolean_column_index) != 0); 
Các vấn đề liên quan