Android数据加载及Json解析——原始版
来源:互联网 发布:淘宝上能买药吗 编辑:程序博客网 时间:2024/06/05 01:06
点击查看原文
1、创建要下载数据的实体类
class MyData { String imagepath; String title; String desc; public MyData(String imagepath, String title, String desc) { super(); this.imagepath = imagepath; this.title = title; this.desc = desc; } }
2、AsyncTask数据加载及Json解析类
class FileAsyncTask extends AsyncTask<String, Void, String> { @Override protected String doInBackground(String... params) { InputStream is = null; ByteArrayBuffer byteArrayBuffer = new ByteArrayBuffer(4000); try { URL url = new URL(params[0]); URLConnection openConnection = url.openConnection(); //设置连接超时的时间 openConnection.setConnectTimeout(3000); //数据读取超时的时间 openConnection.setReadTimeout(3000); is = openConnection.getInputStream(); byte[] buffer = new byte[1024]; int len; while (-1 != (len = is.read(buffer))) { byteArrayBuffer.append(buffer, 0, len); } } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block runOnUiThread(new Runnable() { public void run() { //设置加载异常时的控件,通常显示进度条 } }); e.printStackTrace(); } finally { if (is != null) { try { is.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } String res = new String(byteArrayBuffer.toByteArray(), 0, byteArrayBuffer.length()); return res; } // 解析jsonArray数据 @Override protected void onPostExecute(String result) { try { JSONArray jsonArray = new JSONArray(result); for (int i = 0; i < jsonArray.length(); i++) { JSONObject jsonObject = jsonArray.getJSONObject(i); String imagepath = jsonObject.getString("imagepath"); String title = jsonObject.getString("title"); String desc = jsonObject.getString("desc"); MyData myData = new MyData(imagepath, title, desc); dataList.add(myData);//添加数据 } myAdapter.notifyDataSetChanged();//通知适配器数据改变 } catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); } super.onPostExecute(result); } }
3、调用
private ArrayList<MyData> dataList = new ArrayList<MainActivity.MyData>();//声明全局变量dataList FileAsyncTask fileAsyncTask = new FileAsyncTask(); fileAsyncTask.execute("http://192.168.56.1:8080/service.txt");
4 0
- Android数据加载及Json解析——原始版
- Android数据加载及Json解析——框架版
- Android解析数据—JSON格式数据
- Android--Json数据及Xml数据解析
- Android解析JSON数据(一)——JSON解析
- Android json数据解析及简单例子
- Android——JSON数据解析详解
- Android——JSON解析数据
- Android 解析JSON数据——认识JSON
- Android入门——数据解析之创建及使用JSON字符串(一)
- json原始解析
- Android解析JSON数据(二)——GSON解析
- Android解析JSON数据(三)——FastJson解析
- android---Json数据解析
- Android Json 数据解析
- Android解析json数据
- android解析json数据
- Android-解析json数据
- Android中保持屏幕常亮的几种方式
- HDU 4288 线段树
- 常用的正则表达式
- ios--tableview加入购物车飞入效果
- iOS开发多线程篇—多线程简单介绍
- Android数据加载及Json解析——原始版
- IOS开发 企业版服务器下载ipa
- How To Set Up HTTP Authentication With Nginx On Ubuntu 12.10
- Phoenix 4.3.0 与 Hbase0.98.10-hadoop2的整合,hbase0.98
- Python之路——Python3 入门教程
- linux jdk降版本
- 个推合作案例
- SNMP协议介绍和操作截图
- 如何在Windows下启动Oracle数据库服务