Как получить SortedMap из ContentQueryMap?
Чтобы кэшировать результат курсора, я использую ContentQueryMap.
Дело в том, что я думаю, что для каждого ContentQueryMap я могу получить только один столбец запроса... Но я не уверен в этом.
Предположим, что курсор возвращает 2 столбца: ключ, значение.
Я хочу SortedMap так сделано:,,...
Q: Как получить, чтобы SortedMap, начиная с курсора, выбирал два столбца, передавая из ContentQueryMap (потому что запрос должен быть кэширован)?
1 ответ
Решение
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);
}
Готово: диалоговые окна SortedMap - это SortedMap!