- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用以下代码来填充 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/
对此有什么帮助吗,确保它很简单但看不到它。 对内容提供者 (UserDictionary) 执行 bulkInsert,但所有插入都具有相同的“单词”值。问题是 ContentValues 数组。这是
我有批量插入大量数据的需求 我正在使用内容提供程序并希望使用 bulkInsert 方法(我正在重写该方法)使我能够将整个过程包装在数据库事务中 bulkInsert 方法采用一个 contentVa
我不确定,所以我通常会前后矛盾。 什么更有效率: 多次重新创建ContentValues 创建一次ContentValues,然后在每次使用前调用clear() 示例(1): while (condi
我试过传递 ContentValues 以插入数据库。 public long createEntry(String name, String description) { Conte
我正在使用以下代码来填充 ContentValues 变量。 public ContentValues getContentValues() { ContentValues initialValu
我想将一个对象插入到 contentValues 中。对象的结构是这样的: public class A { String x; String y;
在数据库端,checkInTime 和checkOutTime 的类型是TIMESTAMP 在我的 java 代码中,checkInTime 和 checkOutTime 也是 java.sql.Ti
我正在使用 Mockito 创建测试。在测试中,我创建了一个 ContentValues 类型的对象。当我运行此测试时,出现错误: java.lang.RuntimeException: Method
大家好,我正在尝试这样做 ContentValues initialValues = new ContentValues(); initialValues.put("monthlyBudg
我必须在我的 SQLite 数据库 和一些表中插入很多行必须使用其他表的值将每一行的特定值转换为其他值。实际上,我有这个功能运行良好: public void myFunction( String t
有什么方法可以从 ContentValues 数组创建游标吗? 最佳答案 如果您的意思是从数据库中获取对象的 ContentValue 数组,然后将该数组提供给游标……好吧,那是不可能的。 同样的问题
在this NotePadProvider sample code ,我注意到 ContentValues 参数是重复的,即使它不为空: ContentValues values; if (initi
我正在尝试批量插入大约 700 个 float 。我使用的方法在下方以及内容提供商的 bulkInsert 中。问题是,当我将所有浮点值放入 ContentValues 时,什么也没有发生。将这些浮点
例如,我有四列:first_name、last_name、phone_number 和picture。在我的代码中某处有: ContentValues values = new ContentValu
在 Android 中,是否可以使用 ContentValues 将时间戳插入数据库?当我尝试使用这样的方式添加它时: ContentValues args = new ContentValues()
我在将 ContentValues 输入到我的程序中的数据库时遇到了一些问题,事实证明这很难理解。我有一个 ContentValues 对象,我向其中添加了大约 50 个条目并且一切正常,除了一个存储
我正在通过 getContentResolver().update() 方法更新 ListView 中的项目,我想通过 ContentValue 增加“views”字段,但不能弄清楚这是否可能。 我可
谁能解释一下我在处理日历事件时使用的每个术语? Uri event_uri = Uri.parse("content://com.android.calendar/" + "events"); 这里的
db.insert(table_name,null,contentValues); 始终返回 -1 并且不会将值插入数据库中。 你能帮我找出我做错了什么吗? database_class.java:
是否可以使用 ContentValues.put() 将 SQLiteDatabse 中的列更新为其他列的总和? 我在这里和网上搜索过,我找到的最接近的答案是:Update one column as
我是一名优秀的程序员,十分优秀!