Java 如何从ContentValues获取键?
我的ContentValues对象有字符串键,我想得到一个包含所有键的string[]结果 如何迭代ContentValues对象 编辑1 在得到两个回复后,我提出了这个问题,你认为它有问题吗Java 如何从ContentValues获取键?,java,android,Java,Android,我的ContentValues对象有字符串键,我想得到一个包含所有键的string[]结果 如何迭代ContentValues对象 编辑1 在得到两个回复后,我提出了这个问题,你认为它有问题吗 ArrayList<String> ar = new ArrayList<String>(); ContentValues cv=data; Set<Entry<String, Object>> s=cv.va
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);
ArrayList ar=new ArrayList();
ContentValues cv=数据;
Set s=cv.valueSet();
对于(条目:s){
ar.add(entry.getKey());
}
字符串[]投影=新字符串[ar.size()];
ar.toArray(投影);
根据文档,“valueSet()”方法返回一组所有键和值。然后,您可以对结果集使用迭代器,并对每个迭代的条目元素使用getKey(),以收集到字符串数组中。请尝试以下代码。只需将您的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()));
}
}
public void打印内容值(ContentValues vals)
{
Set s=vals.valueSet();
迭代器itr=s.Iterator();
Log.d(“数据库同步”,“内容值长度::”+vals.size());
while(itr.hasNext())
{
Map.Entry me=(Map.Entry)itr.next();
字符串key=me.getKey().toString();
对象值=me.getValue();
Log.d(“数据库同步”,“键:“+Key+”,值:”+(字符串)(值==null?null:value.toString());
}
}
您也可以试试这个:
String ar [] = {};
ContentValues cv=new ContentValues();
int i=0;
for(String key: cv.keySet()){
ar[i] = key;
}
没有弹出内容,不是吗?您可以直接从集合中填充数组,而不是首先通过ArrayList,但除此之外,看起来很好。是否有任何特定原因您先使用
Entry
,然后再使用Map.Entry
?在这种情况下,它们是否都不同?