gpt4 book ai didi

android - ContentValues() 错误地添加值

转载 作者:行者123 更新时间:2023-11-30 04:38:44 25 4
gpt4 key购买 nike

我正在使用以下代码来填充 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 。放置值时,key 添加到 slot 0,name 也添加到 slot 0(覆盖 uuid),pic 添加到 slot 3,desc 添加到 slot 7。

当然,所有四个键都是不同的值,声明为最终字符串。

我尝试了 new ContentValues(4) 以迫使它们进入正确的位置,但情况更糟。 2 个值被覆盖。

[编辑] 我只是尝试更改看跌期权的顺序。通过移动 UUID 使其成为最后一个 put(),它仍然会覆盖 hashmap 中的槽 0。 (我知道你在想什么,是的,这些键是独一无二的。)

[编辑] 我用下面的代码试了一下,效果很好。我迷路了。我还编辑了原始问题,因为我尝试使用硬编码字符串,但也没有用。

  initialValues.put("a", m_name);
initialValues.put("b", m_pictureURI);
initialValues.put("c", m_description);
initialValues.put("d", getUUID().toString());

如有任何帮助,我们将不胜感激

-我_艺术家

最佳答案

你确定这是个问题吗? ContentValues本质上是一个 hash table ,不是数组。 collisions几乎是不可避免的不同键之间。但碰撞并不意味着您丢失了数据。确保您的数据正确(或未正确)存储的唯一真正方法是尝试从 ContentValues 对象获取数据:

  String newName = initialValues.get("blt_name");
String newPicture = initialValues.get("blt_pictureURI");
String newDesc = initialValues.get("blt_description");
String newUUID = initialValues.get("blt_UUID");
// now do something with these values to check if they're right...

我打赌您会发现数据具有正确的值。如果不是,那么您发布的代码无法向我们展示更多内容。

关于android - ContentValues() 错误地添加值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6374565/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com