model类
public class HomeModel implements IHomeModel{
@Override
public void getData(String url, final ModelInterface modelInterface) {
OkHttp.okHttpGet(url, new Callback() {
@Override
public void onFailure(Call call, IOException e) {
}
@Override
public void onResponse(Call call, Response response) throws IOException {
modelInterface.loadSuccess(response.body().string());
}
});
}
}
model接口
public interface IHomeModel {
//获取数据
void getData(String url,ModelInterface modelInterface);
//定义接口
interface ModelInterface{
void loadSuccess(String data);
void loadFailed();
}
}
presenter类
public class HomePresenter implements IHomePresenter{
HomeFragment homeFragment;
private final HomeModel homeModel;
public HomePresenter(HomeFragment homeFragment) {
this.homeFragment = homeFragment;
homeModel = new HomeModel();
}
@Override
public void getPresenterData() {
homeModel.getData(Api.SHOPLIST, new IHomeModel.ModelInterface() {
@Override
public void loadSuccess(String data) {
homeFragment.getViewData(data);
}
@Override
public void loadFailed() {
}
});
homeModel.getData(Api.BUNNER, new IHomeModel.ModelInterface() {
@Override
public void loadSuccess(String data) {
homeFragment.getBannerData(data);
}
@Override
public void loadFailed() {
}
});
}
}
presenter接口
public interface IHomePresenter {
//获取model
void getPresenterData();
}
view接口
public interface IHomeView {
void getViewData(String mViewData);
void getBannerData(String banner);
}
在fragment中展示
public class HomeFragment extends Fragment implements IHomeView {
private XBanner xbanner;
private GridView grid_view_rxxp;
private ListView list_view_mlss;
private GridView grid_view_pzsh;
private List<MyData.ResultBean.MlssBean.CommodityListBeanXX> mlssList;
private List<MyData.ResultBean.PzshBean.CommodityListBeanX> pzshList;
private List<MyData.ResultBean.RxxpBean.CommodityListBean> rxxpList;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.home_layout, container, false);
xbanner = view.findViewById(R.id.xbanner);
grid_view_rxxp = view.findViewById(R.id.grid_view_rxxp);
list_view_mlss = view.findViewById(R.id.list_view_mlss);
grid_view_pzsh = view.findViewById(R.id.grid_view_pzsh);
//初始化presenter
HomePresenter homePresenter = new HomePresenter(this);
homePresenter.getPresenterData();
return view;
}
@Override
public void getViewData(String mViewData) {
Gson gson = new Gson();
MyData myData = gson.fromJson(mViewData, MyData.class);
mlssList = myData.getResult().getMlss().get(0).getCommodityList();
pzshList = myData.getResult().getPzsh().get(0).getCommodityList();
rxxpList = myData.getResult().getRxxp().get(0).getCommodityList();
getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
if (rxxpList != null){
MyRxxpAdapter rxxpAdapter = new MyRxxpAdapter(getActivity(),rxxpList);
grid_view_rxxp.setAdapter(rxxpAdapter);
}
........
}
});
}
@Override
public void getBannerData(String banner) {
Gson gson = new Gson();
MyBanner myBanner = gson.fromJson(banner, MyBanner.class);
final List<MyBanner.ResultBean> result = myBanner.getResult();
getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
xbanner.setData(result,null);
xbanner.setmAdapter(new XBanner.XBannerAdapter() {
@Override
public void loadBanner(XBanner banner, View view, int position) {
Glide.with(getActivity()).load(result.get(position).getImageUrl()).into((ImageView) view);
}
});
xbanner.setPageTransformer(Transformer.Default);
xbanner.setPageChangeDuration(500);
}
});
}
@Override
public void onResume() {
super.onResume();
xbanner.startAutoPlay();
}
@Override
public void onStop() {
super.onStop();
xbanner.stopAutoPlay();
}
}