Переименовать элемент счетчика во втором фрагменте, используя ViewModel - PullRequest
0 голосов
/ 29 апреля 2020

У меня есть два фрагмента A и B.

В первом у меня есть customSpinner с элементами текста и изображения. Во втором у меня есть editText, что позволяет мне переименовывать текст выбранного элемента customSpinner.

Моя проблема заключается в том, как обновить текст нового элемента в моем customSpinner?

FragmentB

if (name.isNotEmpty()) {
    sharedViewModel.setNewPackName(name)
}

SharedViewModel

val currentPackName = MutableLiveData<String>()

fun setNewPackName(newName: String) {
    currentPackName.postValue(newName)
}

FragmentA

sharedViewModel.currentPackName.observe {
    Toast.makeText(context, it, Toast.LENGTH_SHORT).show()
    val position = customSpinner.selectedItemPosition
    allUserPacks[position].packName = it
    spinnerAdapter.notifyDataSetChanged()
}

My customSpinner построен на списке allUserPacks, который содержит элементы класса Pack с полями packName и packIcon , который использует 'customSpinner'.

Но когда я использую кнопку "Назад" в FragmentB, теперь отображается тост в FragmentA, и я не могу получить имя нового пакета. Как я могу обновить свой спиннер?

...