如何从ContentValues获取密钥?

Pen*_*m10 7 java android

我的ContentValues对象有字符串键,我想得到一个包含所有键的String []结果?

如何迭代ContentValues对象?

编辑1

在得到两个回复之后我想出了这个,你看到它的问题了吗?

        ArrayList<String> ar = new ArrayList<String>();
        ContentValues cv=data;
        Set<Entry<String, Object>> s=cv.valueSet();
        for (Entry<String, Object> entry : s) {
            ar.add(entry.getKey());
        }
        String[] projection=new String[ar.size()];
        ar.toArray(projection);
Run Code Online (Sandbox Code Playgroud)

Sou*_*hak 20

试试这个代码.只需将您ContentValues传入方法即可.

public void printContentValues(ContentValues vals)
{
   Set<Entry<String, Object>> s=vals.valueSet();
   Iterator itr = s.iterator();

   Log.d("DatabaseSync", "ContentValue Length :: " +vals.size());

   while(itr.hasNext())
   {
        Map.Entry me = (Map.Entry)itr.next(); 
        String key = me.getKey().toString();
        Object value =  me.getValue();

        Log.d("DatabaseSync", "Key:"+key+", values:"+(String)(value == null?null:value.toString()));
   }
}
Run Code Online (Sandbox Code Playgroud)


Ric*_*red 3

根据文档,“valueSet()”方法返回一组所有键和值。然后,您可以在结果 Set 上使用迭代器,并在每个迭代的 Entry 元素上使用 getKey() 以将其收集到 String 数组中。