В настоящее время вы наблюдаете только, что новой карте назначена переменная array
. Ваш код не будет уведомлять вас, если запись карты будет добавлена или удалена с карты.
Если вы хотите наблюдать за переназначением array
, вы можете использовать наблюдаемый делегат из стандартной библиотеки Kotlin.
Примечание. Переименуйте переменную array
так, чтобы она соответствовала используемой вами структуре данных.
Вот пример:
var map: MutableMap<String, List<String>> by Delegates.observable(mutableMapOf()) {
property, oldValue, newValue ->
if (oldValue != newValue) //notify that reference has changed
}
Вы можете прочитать о наблюдаемом делегате здесь .
Поскольку вы хотите наблюдать изменения на карте, я думаю, вам следует взглянуть на этот вопрос . Это может помочь. Чтобы заархивировать то, что вы хотите, вам придется расширить карту или создать обертку вокруг нее, которая будет уведомлять вас о добавлении или удалении записи карты.