У меня проблема с моим приложением. Он имеет 3 фрагмента (F1 + F2 + F3)
В F1 (получает список с x номерами видов спорта), и пользователь должен выбрать один (для представления данных используется RecyclerView). На F2 (получает список оборудования), и пользователь должен выбрать оборудование (также используется RecyclerView). На F3 я хочу возобновить выбор пользователей. Я пытался использовать ShareViewModel, но каждый раз, когда я пытался использовать это, он отображается как null в F3.
Как лучше всего передать эти аргументы ??! SharedViewModel
вы используете SafeArgs ?! Я пробовал использовать SharedViewModel
.
Имейте в виду, что следующий код не был скопирован из студии android, он может содержать некоторые ошибки выполнения.
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
holder.itemview.text=listsports[position]
holder.itemview.setOnClickListener{
val sViewModel=SharedViewModel()
sViewModel.setSport(adapterposition)
v:View->v.findNavcontroller().navigate(R.id.action_F1_to_F2)}
}
}
А ShareViewModel
выглядит как:
class SharedViewModel():ViewModel(){
var selectSport= MutableLiveData<String>
val _selectSports=LiveData<String>
get()=selectSport
fun setSport(index:Int)
{
selectSport.value=listsports[position].toString()
}
}