gpt4 book ai didi

java - 存储库和Viewmodel之间的数据

转载 作者:行者123 更新时间:2023-12-01 16:35:10 25 4
gpt4 key购买 nike

我想在用户填写数据并按Submit之后将数据从存储库传递到viewModel:

查看模型:

public class LoginViewModel extends ViewModel {

private boolean isValid = true;
private MutableLiveData<Boolean> loadingListener;
private LoginRepository loginRepository;

public LoginViewModel() {
loginRepository = new LoginRepository();
loadingListener = new MutableLiveData<>();
}

public void onSubmitLoginClicked(LoginRequest loginRequest) {
if(loginValidation(loginRequest)) {
loginRequest.setToken(MyTools.getKey(MyApplication.getApplication(), "token"));
loginRepository.getLoginData(loginRequest);
loadingListener.setValue(true);
}
}

public LiveData<LoginResponse> getLoginViewModelResponseListener() {
return loginRepository.getLoginResponseListener();
}


仓库:

  private MutableLiveData<LoginResponse> loginResponseListener;

public LoginRepository() {
loginResponseListener = new MutableLiveData<>();
}

public LiveData<LoginResponse> getLoginResponseListener() {
return loginResponseListener;
}

public void getLoginData(LoginRequest loginRequest) {
RetrofitClient.INSTANCE.callEndPoint().login(loginRequest).enqueue(new Callback<LoginResponse>() {
@Override
public void onResponse(Call<LoginResponse> call, Response<LoginResponse> response) {
if(response.body() != null) {
loginResponseListener.setValue(response.body());
Log.e(TAG, "onResponse: " + response.body().msg);
}

}

@Override
public void onFailure(Call<LoginResponse> call, Throwable t) {
Log.e(TAG, "onFailure: "+ t.getMessage() );
}
});
}


他们说用户Transformations.setMap,但我听不懂,我尝试使用了很多次,但没有找到结果..有人可以帮我吗?

我在这里呆了很多天..请帮助我:

1-如何将数据从存储库传递到viewModel

2-如何检查数据是否为null或是否成功.. etc

3-如何从视图模型中观察视图,但是在检查数据是否不为null后!

4-谷歌写的资源类是什么?我找不到关于它的Java代码
我不明白,也无法实施
这个:

sealed class Resource<T>(
val data: T? = null,
val message: String? = null
) {
class Success<T>(data: T) : Resource<T>(data)
class Loading<T>(data: T? = null) : Resource<T>(data)
class Error<T>(message: String, data: T? = null) : Resource<T>(data, message)
}


请帮助我感到沮丧

最佳答案

ViewModel documentation

ViewModel对象绝不能观察到生命周期感知的可观察对象的变化,例如LiveData对象。

在此博文中,您可以了解如何正确实现viewModel模式

https://medium.com/androiddevelopers/viewmodels-and-livedata-patterns-antipatterns-21efaef74a54

关于java - 存储库和Viewmodel之间的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61968620/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com