我正在使用以下代码填充ContentValues变量。ContentValues()错误地添加值
public ContentValues getContentValues() {
ContentValues initialValues = new ContentValues();
initialValues.put("blt_name", m_name);
initialValues.put("blt_pictureURI", m_pictureURI);
initialValues.put("blt_description", m_description);
initialValues.put("blt_UUID", getUUID().toString());
return initialValues;
}
我的问题是put()将UUID和名称放在相同的散列位置!我不知道为什么。当创建initialValues变量时,它会创建一个具有7个槽的内部hashmap。当放置这些值时,密钥被添加到插槽0中,名称也被添加到插槽0中(覆盖uuid),图像被添加到插槽3中并且desc被添加到插槽7中。
所有四个键当然是,不同的值,声明为最终的字符串。
我试过新的ContentValues(4)为了迫使他们进入正确的位置,那就更糟了。 2个值被覆盖。
[编辑]我只是试图改变放置的顺序。通过移动UUID以使其放在()最后,它仍然覆盖散列表中的插槽0。 (我知道你在想什么,是的钥匙是独一无二的。)
[编辑]我试了下面的代码,它完美的作品。我在迷路。我还编辑了原始问题,因为我用硬编码的字符串尝试了它,但这也不起作用。
initialValues.put("a", m_name);
initialValues.put("b", m_pictureURI);
initialValues.put("c", m_description);
initialValues.put("d", getUUID().toString());
任何帮助,将不胜感激,
-I_Artist
如果您尝试从ContentValues获取(...)值,会发生什么情况?为什么不直接使用BlockTypeTable值作为关键字? – MicSim 2011-06-16 16:03:37
我没有尝试获取()这些值。我没有看到这一点。我直接使用BlockTypeTables,我只是修改了代码在这里发布它,以便人们会看到我的键确实是字符串。 – MikeWallaceDev 2011-06-16 16:07:37