Привет, ребята, это мой первый выстрел в liveata, и я буду благодарен, если вы поможете мне найти, что не так с этим Обозревателем
В разделе Обозреватель в моей MainActivity ничего не может получить, все в порядке от моего Dialogfragment и класс MainModel для MainViewModel, и у меня есть запущенные журналы, но ничего не происходит с Observer в MainActivity
class MainModel {
private var resultLiveData = MutableLiveData<List<Course>>()
private val courseList = ArrayList<Course>()
private val mainViewModel = MainViewModel()
fun sum(course: Course) {
courseList.add(course)
resultLiveData.value = courseList
Log.d("tag", "$course in model")
mainViewModel.loadedResult(resultLiveData)
Log.d("tag", "${resultLiveData.value} in my model")
}
}
class MainViewModel : ViewModel() {
var result = MutableLiveData<List<Course>>()
fun loadedResult(resultData: MutableLiveData<List<Course>>) {
result = resultData
Log.d("tag", "main viewModel ${result.value}")
Log.d("tag", "main viewModel ${resultData.value}")
}
}
class MainActivity : AppCompatActivity() {
private lateinit var fragmentManager: FragmentManager
private lateinit var linearLayoutManager: LinearLayoutManager
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
linearLayoutManager = LinearLayoutManager(this)
mainRecyclerView.layoutManager = linearLayoutManager
fragmentManager = supportFragmentManager
setupLivedata()
floatingActionButton.setOnClickListener {
showAddDialog()
}
}
private fun setupLivedata() {
val mainViewModel = ViewModelProviders.of(this).get(MainViewModel::class.java)
var myList : ArrayList<Course>
var myObserver = Observer<List<Course>> {
observedList -> myList = observedList as ArrayList<Course>
Log.d("tag", "${myList.size} reached main activity")
Log.d("tag", "${observedList.size} reached main activity")
}
mainViewModel.result.observe(this, myObserver)
}
private fun showAddDialog() {
val inputDialog = InputDialogFragment()
inputDialog.show(supportFragmentManager, "input")
}
}