Как исправить исключение одновременной модификации в КотлинеAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Как исправить исключение одновременной модификации в Котлине

Сообщение Anonymous »

Это мой код, в котором я добавляю данные в список:

Код: Выделить всё

fun bindProcess(listOfDocId: MutableList, isActvityLogEnabled: Boolean): Observable {
return Observable.create {

var filteredList =CopyOnWriteArrayList()// mutableListOf()
val headerItem: SearchResultModel = SearchResultModel()
headerItem.type = 0
headerItem.title = context.getString(R.string.top_matches_label)
filteredList.add(headerItem)

for (row in ContSyncApplication.getContacts()) {
if (listOfDocId.contains(row.docId)) {
val myData: SearchResultModel = SearchResultModel()
myData.type = 1
myData.docId = row.docId
myData.name = row.display_name

if (!row.profile_image.isNullOrBlank()) {
myData.imagePath = row.profile_image!!
}
filteredList.add(myData)

if (isActvityLogEnabled && DatabaseQueryHelper.checkActivityLogById(row.docId)) {
val myactivityData: SearchResultModel = SearchResultModel()
myactivityData.type = 1
myactivityData.docId = row.docId
myactivityData.name = row.display_name
myactivityData.imagePath = row.profile_image ?: ""
mActvityList.add(myactivityData)
}
}
}

if (mActvityList.size > 0) {
val activityHeader: SearchResultModel = SearchResultModel()
activityHeader.type = 0
activityHeader.title = "Activity Log"
filteredList.add(activityHeader)
filteredList.addAll(mActvityList)
}

it.onNext(filteredList)
it.onComplete()
}
}
Когда я выполняю и добавляю данные в список, я получаю исключение ConcurrentModificationException. Может ли кто-нибудь подсказать мне, как выполнить цикл, чтобы я мог решить эту проблему? Мне нужно найти и добавить в список.

Подробнее здесь: https://stackoverflow.com/questions/496 ... -in-kotlin
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»