2012-07-31 123 views
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])); 
} 

这codesnippet将根据多少文件fileBytes.size()可以列出上做出case类的n个对象。无法生成随机字符串

正如你所看到的,我使用UUID.randomUUID().toString()只是生成一个随机String,这是Case构造函数中的第一个参数。

这些对象中的每一个都被保存到SQLite数据库。这不起作用,随机生成的字符串不显示。但如果我将UUID.randomUUID().toString()替换为Integer.toString(j),这将显示出来。我真的不明白为什么它不应该工作..

任何想法?

EDIT

的问题是,在case类的第一个参数是一个字符串,但在数据库中的第一字段被设定为一个INT,该字段更改为VARCHAR

+1

什么数据类型是您试图把UUID到列? – DaveH 2012-07-31 12:56:06

+0

它是一个字符串;) – 2012-07-31 13:06:33

+0

所以我是正确的根据编辑? – 2012-07-31 13:29:26

回答

0

出现在哪里?数据库?确保UUID不会太长或者错误的数据类型存储在数据库中。

+0

该字符串应该显示在ListView中,似乎没有创建该对象。 – 2012-07-31 12:56:47

+0

你确定它不会在这个方法的某处抛出异常吗? – 2012-07-31 12:58:06

+0

是的,我很确定。如果是这样的话,LogCat应该给我看这个错误。 – 2012-07-31 13:05:56

0

怎么样

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

db.addContact(new Case(new String(UUID.randomUUID().toString()), "1234", bitMap[0], bitMap[1]));