Как обновить переменную в Деятельности A из Деятельности B, каждый раз, когда переменная изменяется? - PullRequest
0 голосов
/ 24 апреля 2020

Изображение с описанием проблемы

У меня есть приложение для воспроизведения музыки c. Занятие А - мое главное меню. Вы выбираете песню из списка в упражнении A, и вы намеренно переносите вас в упражнение B (передавая такие данные, как songTitle, songArtist et c).

Когда я нажимаю кнопку возврата, когда я в Упражнение B, оно возвращает меня к занятию A с намерением (передача данных, таких как songTitle, songArtist et c). Я показываю название воспроизводимой в данный момент песни и имя исполнителя в Деятельности А. внизу.

Моя проблема в том, что если я в Деятельности А, а затем песня автоматически переключается на следующую песню в ДеятельностиB, название песни и имя исполнителя не изменяется в Деятельности A, потому что я не передал никакого намерения из Деятельности B в A.

Я пытался использовать SharedPreferences в onStart (), но изменения в тексте не применяются, если я не нажмите кнопку «Домой» на устройстве и снова вернитесь к Упражнению A.

Как я могу прослушать изменения переменных в другом занятии и соответственно обновить мои TextViews?

Ответы [ 3 ]

0 голосов
/ 24 апреля 2020

у вас есть два варианта здесь. вы можете преобразовать эти действия во фрагменты, и тогда вы сможете обмениваться данными с моделью представления области действия. Я считаю, что это хороший вариант, и вы должны сделать это так, но если по какой-то причине у вас огромная база кода, и вам будет очень трудно сделать эти фрагменты активаций, которые вы можете просто добавить onActivityResult в ActivityA и вернуть текущий идентификатор musi c или что-то из ActivityB.

0 голосов
/ 02 мая 2020

Я решил свою проблему с SharedPreferences .

0 голосов
/ 24 апреля 2020

Вы должны посмотреть на LiveData

LiveData находится в наблюдаемом классе данных. Вы можете найти больше об этом здесь: LiveData Android

...