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");

版权声明:本文博客原创文章,博客,未经同意,不得转载。

Android数据加载和Json解析——蓝本的更多相关文章

  1. [转载] Android动态加载Dex机制解析

    本文转载自: http://blog.csdn.net/wy353208214/article/details/50859422 1.什么是类加载器? 类加载器(class loader)是 Java ...

  2. Android异步加载访问网络图片-解析json

    来自:http://www.imooc.com/video/7871 推荐大家去学习这个视频,讲解的很不错. 慕课网提供了一个json网址可以用来学习:http://www.imooc.com/api ...

  3. Android Volley和Gson实现网络数据加载

    Android Volley和Gson实现网络数据加载 先看接口 1 升级接口 http://s.meibeike.com/mcloud/ota/cloudService POST请求 参数列表如下 ...

  4. Android 图片加载框架Glide4.0源码完全解析(二)

    写在之前 上一篇博文写的是Android 图片加载框架Glide4.0源码完全解析(一),主要分析了Glide4.0源码中的with方法和load方法,原本打算是一起发布的,但是由于into方法复杂性 ...

  5. Android图片加载框架最全解析(八),带你全面了解Glide 4的用法

    本篇将是我们这个Glide系列的最后一篇文章. 其实在写这个系列第一篇文章的时候,Glide就推出4.0.0的RC版了.那个时候因为我一直研究的都是Glide 3.7.0版本,再加上RC版本还不太稳定 ...

  6. Android图片加载框架最全解析(三),深入探究Glide的缓存机制

    在本系列的上一篇文章中,我带着大家一起阅读了一遍Glide的源码,初步了解了这个强大的图片加载框架的基本执行流程. 不过,上一篇文章只能说是比较粗略地阅读了Glide整个执行流程方面的源码,搞明白了G ...

  7. Android图片加载框架最全解析(二),从源码的角度理解Glide的执行流程

    在本系列的上一篇文章中,我们学习了Glide的基本用法,体验了这个图片加载框架的强大功能,以及它非常简便的API.还没有看过上一篇文章的朋友,建议先去阅读 Android图片加载框架最全解析(一),G ...

  8. Android下设置ListView数据加载完成后执行layoutanimation

    今天使用android的volley框架写了一个简单的网络天气获取的demo. 承载数据的空间是ListView 因为是网络加载,必然先要设置ListView的默认数据,我设置的就是那个Loading ...

  9. Android之MVP模式实现登录和网络数据加载

    MVP简介 相信大家对 MVC 都是比较熟悉了:M-Model-模型.V-View-视图.C-Controller-控制器,MVP作为MVC的演化版本,也是作为用户界面(用户层)的实现模式,那么类似的 ...

随机推荐

  1. python学习之print输出不换行

    print的即时打印会导致换行,要使得print的输出不换行,可以在字符串或者变量后面加个逗号(“,”),如下: s = "A bird in the hand..." for c ...

  2. Setup Git Server in CentOS 6.3

    0. Environment: Server machine: CentOS 6.3 x86 Client machine: Windows 10 Pro x86_64 1. Install ssh ...

  3. C经典之14-双向链表存储1-10---ShinePans

    #include <stdio.h> #include <conio.h> #include <stdlib.h> //system(); 这个指令须要用到此头文件 ...

  4. Ext4功能和文件系统的简单功能

    Linux kernel 自 2.6.28 開始正式支持新的文件系统 Ext4. Ext4 是 Ext3 的改进版,改动了 Ext3 中部分重要的数据结构,而不只像 Ext3 对 Ext2 那样,不过 ...

  5. Emacs经常使用快捷键的注意事项

    一直用VIM,尝试了好几次Emacs都被它"多得像天上的星星"一样的快捷键给吓倒了.这几天最终下定决心再次尝试. 将它的Tutor练习了一下,顺便对经常使用快捷键做了一下笔记,方便 ...

  6. 【2014 Multi-University Training Contest 3 1002】/【HDU 4888】 Redraw Beautiful Drawings

    不easy啊.最终能够补第二个题了.! 顺便说一句:模版写残了就不要怪出题人啊 ~ (这残废模版研究了好长时间才找出错) 题目大意: 有一个n*m的矩阵.每个格子里都将有一个数.给你每一行数字之和和每 ...

  7. Facebook Asynchronous Layout and Rending

    Facebook Asynchronous Layout and Rending by 吴雪莹 dispatch_async(backgroundQueue, ^{ storyNode = [[FBS ...

  8. Java 并发专题 :闭锁 CountDownLatch 之一家人一起吃个饭

    最近一直整并发这块东西,顺便写点Java并发的例子,给大家做个分享,也强化下自己记忆. 每天起早贪黑的上班,父母每天也要上班,话说今天定了个饭店,一家人一起吃个饭,通知大家下班去饭店集合.假设:3个人 ...

  9. Flex强制类型转换错误

    1.错误描写叙述 TypeError: Error #1034: 强制转换类型失败:无法将 HoleDetailInnerClass0@c2cccf1 转换为 mx.controls.listClas ...

  10. 冒泡排序算法(Java)

     冒泡排序即每次遍历.相邻数字间进行比較,前者大于后者进行交换,不断将最大值后移,直至沉至最后位置:算法关键要点在于确定每次循环的边界. 后面两种算法则是对冒泡排序一定程度上的改良,但相对于其它排 ...