AndroidでSQLiteデータベースを使用する方法を学びました。そして、私は把握できない1つのエラーがあります。SQLiteデータベースは文字列を "0"として保存します
私は私のSQLiteデータベース内の文字列を保存しようとすると、それは関係なく、私が入力として使用している文字列を、「0」として、常にそれを保存していません。これは私のコード例です。
ContentValues values = new ContentValues();
Log.i("CrimeLab", "put : "+crime.getId().toString());
values.put(CrimeDbSchema.CrimeTable.Cols.UUID, "31b0a98a-4089-46de-8325-4ec673bbd713"); // crime.getId().toString()
Log.i("CrimeLab", "take: "+values.getAsString(CrimeDbSchema.CrimeTable.Cols.UUID));
values.put(CrimeDbSchema.CrimeTable.Cols.TITLE, crime.getTitle());
values.put(CrimeDbSchema.CrimeTable.Cols.DATE, crime.getDate().getTime());
values.put(CrimeDbSchema.CrimeTable.Cols.UUID, crime.isSolved() ? 1 : 0);
犯罪が解決された場合、それはユニークなUUID、タイトル、日付を持つ犯罪クラスです。すべてが完全に保存されますが、UUID.toString()だけがデータベースに "0"として保存されます。どんな文字列を入れようとも、データベースに「0」として保存されます。ここに画像があります。ここで
それがデータベースに表示されている方法です、すべてはこの文字列を除いて良いです。私は私の講義に従うところから1冊の本を持っています。それは本のコードと同じで、うまくいきません。これが私の価値をデータベースから取り戻す方法です。
public class CrimeCursorWrapper extends CursorWrapper
{
public CrimeCursorWrapper(Cursor cursor)
{
super(cursor);
}
public Crime getCrime(){
String uuidString = getString(getColumnIndex(CrimeDbSchema.CrimeTable.Cols.UUID));
String title = getString(getColumnIndex(CrimeDbSchema.CrimeTable.Cols.TITLE));
long date = getLong(getColumnIndex(CrimeDbSchema.CrimeTable.Cols.DATE));
int isSolved = getInt(getColumnIndex(CrimeDbSchema.CrimeTable.Cols.SOLVED));
// And so on.
ちょっと分かりました。検索とデバッグの4時間後!どのような間違い... –