3 回答

TA貢獻1898條經驗 獲得超8個贊
您可以使用viewModel實現來實現。喜歡,
public class UserViewModel extends AndroidViewModel {
private UserRepository userRepository;
private LiveData<List<UserData>> getUser;
public UserViewModel(@NonNull Application application) {
super(application);
userRepository = new UserRepository(application);
getUser= userRepository.getUser();
}
public LiveData<List<UserData>> getUser() {
return getUser;
}
}
創建此類后,請更新您的PersonalInfoActivity和LaunchActivity,
private UserViewModel userViewModel;
userViewModel.getUser().observe(this, new Observer<List<UserData>>() {
@Override
public void onChanged(@Nullable final List<UserData> user) {
//write code to set data of user to show using list of user
}
});
如果您對此有任何疑問,請離開commnet。

TA貢獻1808條經驗 獲得超4個贊
我在本教程中創建了一個名為LivedataBus的庫 。您可以像這樣使用它:
//Subscribe
LiveDataBus.subscribe("event_name", this, Observer {
it.runAndConsume {
Toast.makeText(this, "Hello ${it.value}", Toast.LENGTH_LONG).show()
}
})
//Publish
val obj = SomeEvent()
LiveDataBus.publish("event_name", ConsumableEvent(value = obj))
神奇之處在于,我使用了ConsumableEvent,可以在觸發事件后使用它,以防止從靜態總線獲取最新數據。
我在當前項目中使用了它,并且在多個活動和片段上都可以很好地工作。該庫的好處是它可以在Livedata上運行,而您無需關心活動或片段生命周期。
添加回答
舉報