如何在AndroidViewModel的onChanged函数中初始化值

如何在AndroidViewModel的onChanged函数中初始化值,android,Android,我有一个AndroidViewModel,我正在使用一个函数,通过id给我一个联系人 chatViewModel = new ViewModelProvider(this, ViewModelProvider.AndroidViewModelFactory.getInstance(this.getApplication())).get(ChatViewModel.class); Intent i = getIntent(); id = i.get

我有一个AndroidViewModel,我正在使用一个函数,通过id给我一个联系人

        chatViewModel = new ViewModelProvider(this, ViewModelProvider.AndroidViewModelFactory.getInstance(this.getApplication())).get(ChatViewModel.class);

        Intent i = getIntent();
        id = i.getIntExtra(EXTRA_ID, -1);

        chatViewModel.getOneContact(id).observe(this, new Observer<UserContacts>() {
            @Override
            public void onChanged(UserContacts userContacts) {

                reciever = userContacts.getFriend();
                me = sender;
                profile = userContacts.getPicture();
                firstName = userContacts.getFirstName();
                lastName = userContacts.getLastName();
                friendPublicKeyString = userContacts.getFriendPublicKey();
            }
        });
chatViewModel=newViewModelProvider(这是ViewModelProvider.AndroidViewModelFactory.getInstance(这是.getApplication()).get(chatViewModel.class);
Intent i=getIntent();
id=i.getIntExtra(额外id,-1);
getOneContact(id).observe(这个,新的观察者(){
@凌驾
更改后的公共void(UserContacts UserContacts){
receiver=userContacts.getFriend();
me=发送者;
profile=userContacts.getPicture();
firstName=userContacts.getFirstName();
lastName=userContacts.getLastName();
friendPublicKeyString=userContacts.getFriendPublicKey();
}
});
这就是最终被调用的Dao函数

@Query("SELECT * FROM UserContacts WHERE id = :given_id")
LiveData<UserContacts> getAllDataRelatedToCurrentId(int given_id);
@Query(“从UserContacts中选择*,其中id=:给定的\u id”)
LiveData getAllDataRelatedToCurrentId(给定int\u id);

现在的问题是onChanged中的值被初始化为null。现在我知道,通过调试,id不是null,是有效的,与id相关的数据存在于Room数据库中,DAO函数也被调用,但onChanged中的值被分配为null。我也知道这种方法应该是可行的,因为在我的代码中,我正在做类似的事情,但现在我必须改变代码结构进行一些改进,现在它没有初始化任何东西。

我尝试了很多方法,但这会解决问题,所以最后我卸载并重新安装了应用程序,并将新数据放入数据库中,现在一切正常