如何从ContentValues获取密钥?

时间:2010-03-05 22:01:17

标签: 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);

2 个答案:

答案 0 :(得分: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()));
   }
}

答案 1 :(得分:3)

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