我正在尝试单击按钮调用网络。我正在使用 singleLiveEvent 包装器,因为需要将数据发送到服务器并仅在单击按钮时才检索响应。我正在使用 Volley 进行 GET 和 POST 调用。我在存储库上得到响应,但在 onChanged 方法上没有。它从存储库中获取空值。
视图模型类
public void setResponseSingleLiveEvent(String url,Map param){
responseSingleLiveEvent.setValue(mRepository.changeUserPassword(url,param).getValue());
}
存储库类
public MutableLiveData<CommonServerResponse> changeUserPassword(String url, Map params) {
this.postParams = params;
final MutableLiveData<CommonServerResponse> responseMutableLiveData = new MutableLiveData<>();
VolleycustomRequest<CommonModel> volleycustomRequest = new VolleycustomRequest<CommonModel>(Request.Method.POST,
url, CommonModel.class,
(Response.Listener<CommonModel>)
response -> {
Log.d(TAG, "changeUserPassword: "+response);
responseMutableLiveData.setValue(new CommonServerResponse(response));
},
error -> {
responseMutableLiveData.setValue(new CommonServerResponse(VolleyErrorHelper.getMessage(error)));
}){
@Override
protected Map<String, String> getParams() throws AuthFailureError {
return params;
}
};
AppController.getInstance().addToRequestque(volleycustomRequest);
return responseMutableLiveData;
}
我希望仅在单击按钮时发送数据,而不是在活动开始时发送。