Json串方括号开头手动解析数据简单案例
来源:互联网 发布:小学四年级体测数据 编辑:程序博客网 时间:2024/06/06 01:19
package com.bwie.pm.page;import android.content.Intent;import android.os.AsyncTask;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.support.annotation.Nullable;import android.support.v4.app.Fragment;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.AdapterView;import android.widget.ListView;import com.bwie.pm.Main3Activity;import com.bwie.pm.adapter.PtfAdapter;import com.bwie.pm.bean.PtfBean;import com.bwie.pm.R;import com.handmark.pulltorefresh.library.PullToRefreshBase;import com.handmark.pulltorefresh.library.PullToRefreshListView;import org.json.JSONArray;import org.json.JSONException;import org.json.JSONObject;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.net.HttpURLConnection;import java.net.MalformedURLException;import java.net.URL;import java.util.ArrayList;/** * author:Created by WangZhiQiang on 2017/10/20. */public class PageData extends Fragment { private View view; private PullToRefreshListView ptf; private String uri = "http://mnews.gw.com.cn/wap/data/news/"; private String u; private String p = "/page_"; private int pageIndex = 1; private ArrayList<PtfBean> list = new ArrayList<PtfBean>(); @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { view = inflater.inflate(R.layout.layout_data, container, false); return view; } @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); ptf = (PullToRefreshListView) view.findViewById(R.id.ptf); u = getArguments().getString("urls"); initData();//初始化数据 ptf.setMode(PullToRefreshBase.Mode.BOTH); //PullToRefresh的点击事件 ptf.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) { Intent intent = new Intent(getActivity(), Main3Activity.class); intent.putExtra("ur",list.get(i).getUu()); startActivity(intent); } }); //PullToRefresh的监听事件 ptf.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() { @Override public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) { //下拉刷新的方法 new MyAsyncTask1().execute(); } @Override public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) { //上拉加载的方法 new MyAsyncTask2().execute(); } }); } Handler handler = new Handler() { @Override public void handleMessage(Message msg) { super.handleMessage(msg); String url = msg.obj.toString(); try { JSONArray jsonArray = new JSONArray(url); JSONObject jsonObject = jsonArray.optJSONObject(0); JSONArray data = jsonObject.optJSONArray("data"); for (int i = 0; i < data.length(); i++) { JSONObject object = data.optJSONObject(i); String img = object.getString("img"); String title = object.getString("title"); String uu = object.getString("url"); list.add(new PtfBean(img, title,uu)); } ptf.setAdapter(new PtfAdapter(getActivity(), list)); } catch (JSONException e) { e.printStackTrace(); } } }; //初始化数据 private void initData() { new Thread() { @Override public void run() { super.run(); try { URL url = new URL(uri + u + p + pageIndex + ".json"); HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); int responseCode = urlConnection.getResponseCode(); if (responseCode == 200) { InputStream inputStream = urlConnection.getInputStream(); BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream)); StringBuilder builder = new StringBuilder(); String stringTemp = ""; while ((stringTemp = reader.readLine()) != null) { builder.append(stringTemp); } Message message = new Message(); message.obj = builder.toString(); handler.sendMessage(message); } } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }.start(); } public static PageData receive(String strs) { Bundle bundle = new Bundle(); bundle.putString("urls", strs); PageData pageData = new PageData(); pageData.setArguments(bundle); return pageData; } //下拉刷新的方法 class MyAsyncTask1 extends AsyncTask<Void, Void, String> { @Override protected String doInBackground(Void... voids) { try { Thread.sleep(2000); } catch (InterruptedException e) { e.printStackTrace(); } return null; } @Override protected void onPostExecute(String s) { super.onPostExecute(s); list.clear(); pageIndex++; initData(); ptf.onRefreshComplete(); } } //上拉加载的方法 class MyAsyncTask2 extends AsyncTask<Void, Void, String> { @Override protected String doInBackground(Void... voids) { try { Thread.sleep(2000); } catch (InterruptedException e) { e.printStackTrace(); } return null; } @Override protected void onPostExecute(String s) { super.onPostExecute(s); pageIndex++; initData(); ptf.onRefreshComplete(); } }}
阅读全文
0 0
- Json串方括号开头手动解析数据简单案例
- Json数据手动解析
- 手动解析json数据
- json数据解析案例
- 简单JSON解析案例出错
- Android数据解析JSON解析之手动JSON解析
- json串解析,成员变量大写字母开头
- Java 手动解析Json数据小记
- Android中json数据手动解析方式
- 关于Json数据的手动解析
- URLConnection联网获得数据(解析数组开头的json)
- 使用Gson解析Json数据案例
- fastJson解析多层Json数据案例
- 简单解析json数据demo
- 手动解析json
- json手动解析
- JSON解析之手动解析
- java手动拼接Ext组件json数据的简单方法
- 深度学习所需的python-学习笔记10
- uiautomator中相同控件名该如何获取想要的控件,instance(0)区分布局一样的控件
- Hadoop中的文件格式
- 重复未名
- android studio 导入库文件
- Json串方括号开头手动解析数据简单案例
- LeetCode-283:Move Zeroes (将数组中0元素移至尾部)
- Python可视化学习笔记二
- python绘制动态模拟图
- xml html XHTML和json 区别
- python之文件读写
- 敏感词过滤
- Laravel应用目录结构
- 关于elasticsearch的先聚合和过滤、先过滤再聚合的详解