要缓存 Cursor的结果,我使用的是ContentQueryMap。
事实是,我认为对于每个ContentQueryMap,我只能得到一个查询列...但我不确定这一点。
假设游标返回2列:key,value。
我想要完成一个SortedMap :,,...
问:如何从Cursor开始,从ContentQueryMap中选择两列(因为查询必须被缓存)?
答案 0 :(得分:0)
ContentQueryMap mQueryMap = new ContentQueryMap(cursor, BaseColumns._ID, true, null);
Comparator<Long> numberAmaxB = new Comparator<Long>() {
@Override public int compare(Long s1, Long s2) {
if (s1<s2)
return 1;
else if (s1>s2)
return -1;
else
return 0;
}
};
SortedMap<Long, String> mySortedMap = new TreeMap<Long, String>(numberAmaxB);
for (Map.Entry<String, ContentValues> row : mQueryMap.getRows().entrySet()) {
Long _ID = Long.valueOf(row.getKey());
String data= row.getValue().getAsString("data_column");
conversationsSortedMap.put(_ID, data);
}
完成:conversationsSortedMap是SortedMap!