我在我的android應用程序中創建了數據庫表。我用這個查詢:Android - 帶有布爾錯誤的ContentValue數據庫?
CREATE TABLE foo (_id INTEGER PRIMARY KEY AUTOINCREMENT, mybool BOOLEAN)
比我添加的行表,那的mybool
值將是true
。
我跑了sqlite3的命令來查看該表中的值,我看到:
_id | mybool
----------------------
1 | 1
也就是說corret,該true
值成了1
奇怪的是在閱讀。我讀的表像:
ContentValues values = new ContentValues();
Cursor cursor = db.rawQuery("SELECT * FROM foo", null);
DatabaseUtils.cursorRowToContentValues(cursor, values);
然後我得到了奇怪的結果:
values.getAsBoolean("mybool"); // return false - WRONG
values.getAsInteger("mybool"); // return 1 = true - CORRECT
我用這樣的代碼即可獲得布爾值:
values.getAsInteger("mybool") != 0;
但奇怪。
爲什麼我總是在getAsBoolean
函數中得到false
?在ContentValues
班有沒有錯誤?任何人都有這個問題?
我同意!我猜你[報道](https://code.google.com/p/android/issues/detail?id=54600)... – gengkev