MVP实现展示信息

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();
    }
}

猜你喜欢

转载自blog.csdn.net/weixin_43882999/article/details/85562029