Не могу добавить значение в конце разреженного массива в Android

Я очень хорошо играл с sparseArray до сегодняшнего дня. Теперь это выглядит как sparseArray не погасит мою любовь:(

Я должен поддерживать порядок своих объектов, которые я храню в sparseArray, Есть только один метод setValueAt это не позволяет установить ключ. key это важно для меня.

Скажи мне, что обходится? Должен ли я взломать источник? Или если кто-то может помочь с пользовательским методом, который я могу добавить в свой собственный класс sparseArray, т.е. я буду кодировать MySparseArray наследование от sparseArray добавить мой этот метод. Мне нужно добавить объект с определенным ключом в последний индекс или в конце моего sparseArray,

2 ответа

На основании документации для keyAt Я полагаю, что именно так вы и должны добавить "конец" SparseArray.

    SparseArray<Object> myArray = new SparseArray<Object>();
    myArray.put(myArray.keyAt(myArray.size()-1) + 1, new Object());

Документация:

Ключи, соответствующие индексам в порядке возрастания, гарантированно находятся в порядке возрастания, например, keyAt(0) возвращает наименьший ключ, а keyAt(size()-1) возвращает наибольший ключ.

Согласно http://developer.android.com/reference/android/util/SparseArray.html, есть append(int key, E value) метод - почему бы вам просто не использовать этот?

Другие вопросы по тегам