JSON解析数据 vs 从bomb服务器数据库查询数据

需求页面:

上面是一个viewpager图片,下面是一个viewpager的fragment

属性和公共方法一样

private ViewPager dis_vp_up;
private ViewPager dis_vp_down;
private PagerTabStrip pagerTab;

private List<DisVpUpEntity> disVpUpList;
private List<DisVpDownEntity> disVpDownList;
private List<String> disVpDownTabList;
private List<Fragment> downFrags;

private OkhttpImpl okhttpImpl;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.discovery_fragment, null);
    dis_vp_up = (ViewPager) view.findViewById(R.id.dis_vp_up);
    dis_vp_down = (ViewPager) view.findViewById(R.id.dis_vp_down);
    pagerTab = (PagerTabStrip) view.findViewById(R.id.dis_down_title);
    pagerTab.setTextColor(Color.parseColor("#dd9c64"));
    pagerTab.setTabIndicatorColor(Color.parseColor("#dd9c64"));
    pagerTab.setDrawFullUnderline(false);
    okhttpImpl = new OkhttpImpl();
    loadParseUp();  //抓包解析json方式
    sqlCurd();  //从网络服务器数据库查询
    return view;
}

//初始化downviewpager
private void initFragments(List<DisVpDownEntity> disDownList, List<String> disDownTabList) {
    downFrags = new ArrayList<>();
    for (int i = 0; i < disDownTabList.size(); i++) {
        DisDownFragment fragment = new DisDownFragment();
        Bundle bundle = new Bundle();
        bundle.putString("imgPath", disDownList.get(i).getImgPath());
        bundle.putString("buttonPath", disDownList.get(i).getButtonPath());
        fragment.setArguments(bundle);
        downFrags.add(fragment);
    }
}

class DisVpDownAdapter extends FragmentPagerAdapter {

    public DisVpDownAdapter(FragmentManager fm) {
        super(fm);
    }

    @Override
    public Fragment getItem(int position) {
        return downFrags.get(position);
    }

    @Override
    public int getCount() {
        return downFrags.size();
    }

    @Override
    public CharSequence getPageTitle(int position) {
        return disVpDownTabList.get(position);
    }
}

第一种方法:从bomb网络数据库查询

private void sqlCurd() {
    BmobQuery<DisVpUpEntity> query = new BmobQuery<>();
    query.findObjects(getContext(), new FindListener<DisVpUpEntity>() {
        @Override
        public void onSuccess(List<DisVpUpEntity> upList) {
            DisVpUpAdapter adapterUp = new DisVpUpAdapter(upList, getActivity());
            dis_vp_up.setAdapter(adapterUp);
        }

        @Override
        public void onError(int i, String s) {

        }
    });

    BmobQuery<DisVpDownEntity> query2 = new BmobQuery<>();
    query2.findObjects(getContext(), new FindListener<DisVpDownEntity>() {
        @Override
        public void onSuccess(List<DisVpDownEntity> downList) {
            disVpDownTabList = new ArrayList<>();
            for (DisVpDownEntity disvpdown : downList) {
                disVpDownTabList.add(disvpdown.getTitle());
            }
            initFragments(downList, disVpDownTabList);
            DisVpDownAdapter adapterDown = new DisVpDownAdapter(getChildFragmentManager());
            dis_vp_down.setAdapter(adapterDown);
        }

        @Override
        public void onError(int i, String s) {

        }
    });
}

第二种方法:json解析

private Handler dHandler = new Handler() {
    @Override
    public void handleMessage(Message msg) {
        DisVpUpAdapter adapterUp = new DisVpUpAdapter(disVpUpList, getActivity());
        dis_vp_up.setAdapter(adapterUp);
        initFragments(disVpDownList, disVpDownTabList);
        DisVpDownAdapter adapterDown = new DisVpDownAdapter(getChildFragmentManager());
        dis_vp_down.setAdapter(adapterDown);
    }
};

//下载并解析upviewpager
private void loadParseUp() {
    okhttpImpl.download(Contents.DIS_VP_UP, new OkhttpInterface() {
        @Override
        public void parse(String data) {
            try {
                disVpUpList = new ArrayList<>();
                JSONObject jsonobject = new JSONObject(data);
                JSONArray result = jsonobject.getJSONArray("result");
                for (int i = 0; i < result.length(); i++) {
                    JSONObject jsonUp = (JSONObject) result.get(i);
                    String imgPath = jsonUp.getString("imgPath");
                    String title = jsonUp.getString("title");
                    String url = jsonUp.getString("url");
                    DisVpUpEntity disVpUpEntity = new DisVpUpEntity(imgPath, title, url);
                    disVpUpList.add(disVpUpEntity);
                }
                loadParseDown();
            } catch (JSONException e) {
                e.printStackTrace();
            }
        }
    });
}

//下载并解析downviepager
private void loadParseDown() {
    okhttpImpl.download(Contents.DIS_VP_DOWN, new OkhttpInterface() {
        @Override
        public void parse(String data) {
            try {
                disVpDownList = new ArrayList<>();
                disVpDownTabList = new ArrayList<>();
                JSONObject jsonObject = new JSONObject(data);
                JSONArray result = jsonObject.getJSONArray("result");
                for (int i = 0; i < result.length(); i++) {
                    JSONObject jsonDown = (JSONObject) result.get(i);
                    String buttonPath = jsonDown.getString("buttonPath");
                    String imgPath = jsonDown.getString("imgPath");
                    String title = jsonDown.getString("title");
                    DisVpDownEntity disVpDownEntity = new DisVpDownEntity(buttonPath, imgPath, title);
                    disVpDownTabList.add(title);
                    disVpDownList.add(disVpDownEntity);
                }
                dHandler.sendEmptyMessage(0);
            } catch (JSONException e) {
                e.printStackTrace();
            }
        }
    });
}

 

另外,第二种方法的handler也可以使用handler.post处理

private Handler dHandler = new Handler() ;

private void loadParseUp() {
    okhttpImpl.download(Contents.DIS_VP_UP, new OkhttpInterface() {
        @Override
        public void parse(String data) {
            try {
                disVpUpList = new ArrayList<>();
                JSONObject jsonobject = new JSONObject(data);
                JSONArray result = jsonobject.getJSONArray("result");
                for (int i = 0; i < result.length(); i++) {
                    JSONObject jsonUp = (JSONObject) result.get(i);
                    String imgPath = jsonUp.getString("imgPath");
                    String title = jsonUp.getString("title");
                    String url = jsonUp.getString("url");
                    DisVpUpEntity disVpUpEntity = new DisVpUpEntity(imgPath, title, url);
                    disVpUpList.add(disVpUpEntity);
                }
                loadParseDown();
            } catch (JSONException e) {
                e.printStackTrace();
            }
        }
    });
}

//下载并解析downviepager
private void loadParseDown() {
    okhttpImpl.download(Contents.DIS_VP_DOWN, new OkhttpInterface() {
        @Override
        public void parse(String data) {
            try {
                disVpDownList = new ArrayList<>();
                disVpDownTabList = new ArrayList<>();
                JSONObject jsonObject = new JSONObject(data);
                JSONArray result = jsonObject.getJSONArray("result");
                for (int i = 0; i < result.length(); i++) {
                    JSONObject jsonDown = (JSONObject) result.get(i);
                    String buttonPath = jsonDown.getString("buttonPath");
                    String imgPath = jsonDown.getString("imgPath");
                    String title = jsonDown.getString("title");
                    DisVpDownEntity disVpDownEntity = new DisVpDownEntity(buttonPath, imgPath, title);
                    disVpDownTabList.add(title);
                    disVpDownList.add(disVpDownEntity);
                }
                //dHandler.sendEmptyMessage(0);
                dHandler.post(new Runnable() {
                    @Override
                    public void run() {
                        DisVpUpAdapter adapterUp = new DisVpUpAdapter(disVpUpList, getActivity());
                        dis_vp_up.setAdapter(adapterUp);
                        initFragments(disVpDownList, disVpDownTabList);
                        DisVpDownAdapter adapterDown = new DisVpDownAdapter(getChildFragmentManager());
                        dis_vp_down.setAdapter(adapterDown);
                    }
                });
            } catch (JSONException e) {
                e.printStackTrace();
            }
        }
    });
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值