У меня есть приложение, которое использует ViewModel и MutableLiveData для привязки текущих данных к моему пользовательскому интерфейсу.После нескольких часов моего времени!и просмотреть все образцы в Интернете, я не мог найти причину проблемы.
Моя деятельность:
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);
}
}
И макет (я убрал дополнительные коды здесь):
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools">
<data >
<variable
name="viewmodel"
type="googlearchitecturecomponents.ferdos.com.dagger211.detail.MyModel"/>
</data>
<TextView
android:text="@{viewmodel.student.id}" />
<TextView
android:text="@{viewmodel.student.family}" />
<TextView
android:text="@{viewmodel.student.id}"/>
</layout>
Во время выполнения и при создании действия я получаю эту ошибку:
java.lang.RuntimeException: не удается запустить действие ComponentInfo {googlearchitecturecomponents.ferdos.com.dagger211 / googlearchitecturecomponents.ferdos.com.dagger211.detail.DetailActivity}: java.lang.RuntimeException: Не удалось вызвать метод наблюдателя --------- Трассировка стека ---------
android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2298)
android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360)
android.app.ActivityThread.access$800(ActivityThread.java:144)
android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278)
android.os.Handler.dispatchMessage(Handler.java:102)
android.os.Looper.loop(Looper.java:135)
android.app.ActivityThread.main(ActivityThread.java:5221)
java.lang.reflect.Method.invoke(Native Method)
java.lang.reflect.Method.invoke(Method.java:372)
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
Пожалуйстапомогите мне с этой ошибкой !!