Java Android-实时数据不能与recyclerview一起使用

Java Android-实时数据不能与recyclerview一起使用,java,android,kotlin,design-patterns,android-livedata,Java,Android,Kotlin,Design Patterns,Android Livedata,LiveData未触发。我在同一个片段中运行了许多livedata,但其中一个不起作用。我不知道是什么问题 ViewModel.kt(部分代码已减少)。 类MyAccountViewModel:ViewModel(){ private val_dataUser=MutableLiveData() val dataUser:LiveData get()=\u dataUser private val_userState=MutableLiveData() val userState:LiveDat

LiveData未触发。我在同一个片段中运行了许多livedata,但其中一个不起作用。我不知道是什么问题

ViewModel.kt(部分代码已减少)。

类MyAccountViewModel:ViewModel(){
private val_dataUser=MutableLiveData()
val dataUser:LiveData
get()=\u dataUser
private val_userState=MutableLiveData()
val userState:LiveData
get()=\u userState
private val_storiesState=MutableLiveData()
val storiesState:LiveData
get()=\u storiesState
private val_dataStories=MutableLiveData()
val数据存储:LiveData
get()=\u数据存储
private val_navigateToStories=MutableLiveData()
val navigateToStories:LiveData
get()=\u
有趣的openUserStories(用户ID:Long){
_navigateToStories.postValue(用户ID)
}
}
片段

覆盖已创建的视图(视图:视图,savedInstanceState:Bundle?){
super.onViewCreated(视图,savedInstanceState)
观察(viewModel.dataUser,::onViewUserDataChanged)//正在工作
观察(viewModel.userState,::onViewUserStateChanged)//正在工作
观察(viewModel.dataStories,::onViewStoriesDataChanged)//工作
观察(viewModel.storiesState,::onViewStoriesStateChanged)//工作
观察(viewModel.navigateToStories,::onViewEvent)//不工作
}
私人娱乐onViewEvent(viewEvent:Long){
findNavController()。导航(
MyAccountFragmentDirections。
ActionMyAccountFragmentToMyShowFragment(viewEvent)
)
}
观察()方法:

<androidx.constraintlayout.widget.ConstraintLayout
        android:onClick="@{() -> viewModel.openUserStories(stories.id)}"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">

 </androidx.constraintlayout.widget.ConstraintLayout>
fun LifecycleOwner.observe(liveData:liveData,observator:(T)->单位){
观察(这个,观察者{
它?让{t->observer(t)}
})
}
有趣的生命周期所有者。观察(liveData:MutableLiveData,observer:(T)->Unit){
观察(这个,观察者{
它?让{t->observer(t)}
})
}
onClick with DataBinding(部分代码已减少):

<androidx.constraintlayout.widget.ConstraintLayout
        android:onClick="@{() -> viewModel.openUserStories(stories.id)}"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">

 </androidx.constraintlayout.widget.ConstraintLayout>

LiveData用于状态,而不是事件。您需要使用一种方法,例如,如果您想将LiveData误用到事件中,我也尝试过使用SingleLiveData。它又不起作用了。事实上,这不是问题所在。问题是观察者没有被触发。可能它不相关,但在从后台线程设置值时使用
postValue
,在从UI线程调用时使用
setValue
,在您的情况下,这是第二次,您是否确定触发了单击事件?是的,它会触发。我试过了。我不知道是什么问题。没有什么我没试过的。