Androidアプリでデータベーステーブルを作成しました。私はこのクエリを使用しました:
CREATE TABLE foo (_id INTEGER PRIMARY KEY AUTOINCREMENT, mybool BOOLEAN)
テーブルに行を追加した場合、の値はmybool
になりますtrue
。
sqlite3コマンドを実行してテーブルの値を確認したところ、次のようになりました。
_id | mybool
----------------------
1 | 1
つまり、コレット、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;
しかし、それは奇妙です。
なぜ私はいつも関数に入るfalse
のですか?クラスgetAsBoolean
にバグはありますか?ContentValues
この問題を抱えている人は他にいますか?