您的位置:首页 > 数据库

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

2016-05-25 20:21 686 查看
需求页面:



上面是一个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();
}
}
});
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: