Android LiveData(MutableLiveData)和数据绑定上升错误(调用观察者方法失败)

Android LiveData(MutableLiveData)和数据绑定上升错误(调用观察者方法失败),android,viewmodel,android-viewholder,android-livedata,mutablelivedata,Android,Viewmodel,Android Viewholder,Android Livedata,Mutablelivedata,我有一个应用程序,它使用ViewModel和MutableLiveData将实时数据绑定到我的UI。过了几个小时,我的时间就完了!在互联网上查看所有样本,我无法找到问题的原因 我的活动: public class DetailActivity extends DaggerAppCompatActivity { ActivityStudentBinding mViewDataBinding; MyModel myModel; @Override prote

我有一个应用程序,它使用ViewModel和MutableLiveData将实时数据绑定到我的UI。过了几个小时,我的时间就完了!在互联网上查看所有样本,我无法找到问题的原因

我的活动:

public class DetailActivity extends DaggerAppCompatActivity {
    ActivityStudentBinding mViewDataBinding;    
    MyModel myModel;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        mViewDataBinding = DataBindingUtil.setContentView(this, R.layout.activity_student);
        mViewDataBinding.setLifecycleOwner(this);
        myModel = ViewModelProviders.of(this).get(MyModel.class);
        mViewDataBinding.setViewmodel(myModel);
    }
还有我的模型课:

public class MyModel extends ViewModel
{
    public MutableLiveData<StudentData.Student> student = new MutableLiveData<>();

    public MyModel() {
        this.student=student;
        StudentData.Student student = new StudentData().getFirstStudent();
        this.student.setValue(student);
    }    
}

请帮我解决这个令人困惑的错误

必须为set
android:text使用字符串值

      <TextView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="@{String.valueOf(viewmodel.student.id)}" />

或者您也可以简单地执行此操作

       <TextView 
                 android:text="@{viewmodel.student.id.toString}" />   
       <TextView 
                 android:text="@{viewmodel.student.family.toString}" />    

       <TextView
                 android:text="@{viewmodel.student.id.toString}"/> 


@Enzokie它导致建筑层出现错误:错误:(21,69)错误:找不到符号类ActivityStudentBinding。因为这里不需要值,如果你想它
viewmodel.student
返回
MutableLiveData
,这意味着你不能执行
viewmodel.student.id
,所以我假设
viewmodel.student.value.id
应该可以工作(未测试)。顺便说一句,你的@Enzokie就像我在问题中提到的:我在这里清理了额外的代码;)不要删除代码中的关键部分,因为这里的其他人会将这个问题[因排版而偏离主题]标记为原因。太好了。这就是答案。上帝,这真的很有帮助。非常感谢。
      <TextView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="@{String.valueOf(viewmodel.student.id)}" />
       <TextView 
                 android:text="@{viewmodel.student.id.toString}" />   
       <TextView 
                 android:text="@{viewmodel.student.family.toString}" />    

       <TextView
                 android:text="@{viewmodel.student.id.toString}"/>