From b3a51f064c4dfb27f54cd9526803338d2e8dc296 Mon Sep 17 00:00:00 2001 From: Runt <qingingrunt2010@qq.com> Date: Sat, 13 Aug 2022 16:26:49 +0000 Subject: [PATCH] 添加注释,部分优化 --- app/src/main/java/com/runt/open/mvvm/base/model/LoadPageViewModel.java | 39 ++++++++++++++++++++++++++++----------- 1 files changed, 28 insertions(+), 11 deletions(-) diff --git a/app/src/main/java/com/runt/open/mvvm/base/model/LoadPageViewModel.java b/app/src/main/java/com/runt/open/mvvm/base/model/LoadPageViewModel.java index 5560ad5..1f7fc47 100644 --- a/app/src/main/java/com/runt/open/mvvm/base/model/LoadPageViewModel.java +++ b/app/src/main/java/com/runt/open/mvvm/base/model/LoadPageViewModel.java @@ -1,32 +1,49 @@ package com.runt.open.mvvm.base.model; import androidx.lifecycle.MutableLiveData; - +import com.google.gson.Gson; import com.runt.open.mvvm.data.HttpApiResult; import com.runt.open.mvvm.data.PageResult; import com.runt.open.mvvm.retrofit.observable.HttpObserver; +import org.json.JSONObject; -import java.util.List; +import java.lang.reflect.ParameterizedType; +import java.util.ArrayList; import java.util.Map; /** * 分页 * Created by Administrator on 2021/11/3 0003. */ -public abstract class LoadPageViewModel<RESULT extends PageResult> extends BaseViewModel { +public abstract class LoadPageViewModel<D> extends BaseViewModel { public final int SIZE = 10; - private MutableLiveData<List> liveData = new MutableLiveData<>(); + private MutableLiveData<ArrayList<D>> liveData = new MutableLiveData<>(); private MutableLiveData liveFailed = new MutableLiveData(); + /** + * 请求地址 + * @return + */ protected abstract String requestUrl(); - public void requestData(int page,Map param){ - httpObserverOn( commonApi.getPageData(requestUrl(), page, SIZE, param), new HttpObserver<RESULT>() { - + /** + * 数据请求 + * @param page 页数 + * @param param 请求参数 + */ + public void requestData(int page, Map param){ + final ParameterizedType type = (ParameterizedType) this.getClass().getGenericSuperclass(); + Class<D> entityClass = (Class<D>) type.getActualTypeArguments()[0]; + httpObserverOn( commonApi.getPageData(requestUrl(), page, SIZE, param), new HttpObserver<PageResult>() { @Override - protected void onSuccess(RESULT data) { - liveData.postValue(data.rows); + protected void onSuccess(PageResult data) { + //数据转换 + ArrayList<D> list = new ArrayList<>(); + for(Object map : data.rows){ + list.add(new Gson().fromJson(new JSONObject((Map) map).toString(),entityClass)); + } + liveData.postValue(list); } @Override @@ -36,12 +53,12 @@ } }); } - - public MutableLiveData<List> getLiveData(){ + public MutableLiveData<ArrayList<D>> getLiveData(){ return liveData; } public MutableLiveData getLiveFailed() { return liveFailed; } + } -- Gitblit v1.9.1