0
 for (int j = 0; j < fileBytes.size(); j++) {
        bitMap = convert.convertByteArray(fileBytes.get(j));
        db.addContact(new Case(UUID.randomUUID().toString(), "1234",
                        bitMap[0], bitMap[1]));
 }

このコードニペットは、リストできるcaseファイルの数に基づいてクラスの n オブジェクトを作成します。fileBytes.size()

ご覧のとおりUUID.randomUUID().toString()、 random を生成するためにだけを使用しています。Stringこれは、Caseコンストラクターの最初のパラメーターです。

これらの各オブジェクトはSQLiteデータベースに保存されます。これは機能しません。ランダムに生成された文字列は表示されません。UUID.randomUUID().toString()しかし、をこれに置き換えるInteger.toString(j)と表示されます。なぜそれがうまくいかないのか、私には本当にわかりません..

何か案は?

編集

問題は、クラスの最初のパラメーターがcase文字列だったのに、データベースの最初のフィールドが に設定されていたことです。INTこのフィールドを に変更してください。VARCHAR

4

2 に答える 2

0

どうですか

String randomStr = String.valueOf(Random.nextInt());

また

db.addContact(new Case(new String(UUID.randomUUID().toString()), "1234", bitMap[0], bitMap[1]));
于 2012-07-31T13:16:17.230 に答える
0

どこに現れますか?データベース?UUID が長すぎたり、DB に格納されるデータ型が間違っていたりしないことを確認してください。

于 2012-07-31T12:55:22.307 に答える