我的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);
答案 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数组中。