首页 > 解决方案 > 变量“观察者”可能尚未初始化

问题描述

我试图在第一次回调后删除观察者。我没有运气。

Observer <? super List<MyEntity>> observer = new Observer<List<MyEntity>>() {
    @Override
    public void onChanged(List<MyEntity> myEntities) {
        Log.d(TAG, "observer changed");

       //Variable 'observer' might not have been initialized error here
       MySearchViewModel.getMyList().removeObserver(observer);
    }
};
MySearchViewModel.getMyList().observe(MainActivity.this, observer);

我该如何解决这个问题?

标签: androidandroid-livedata

解决方案


感谢先生泰迪。这是正确的代码:

Observer <? super List<MyEntity>> observer = new Observer<List<MyEntity>>() {
    @Override
    public void onChanged(List<MyEntity> myEntities) {

       MySearchViewModel.getMyList().removeObserver(this);
    }
};
MySearchViewModel.getMyList().observe(MainActivity.this, observer);

推荐阅读