自定义adapter:

public class MyAdapter extends BaseAdapter {private Context context;private List<Joker> list;private LayoutInflater inflater = null;public MyAdapter(Context context, List<Joker> list) {this.context = context;this.list = list;inflater = LayoutInflater.from(context);}@Overridepublic int getCount() {return list.size();}@Overridepublic Object getItem(int position) {return list.get(position);}@Overridepublic long getItemId(int position) {return position;}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {ViewHolder holder=null;if(convertView==null){holder=new ViewHolder();convertView=inflater.inflate(R.layout.joker_item,null);holder.tv_title= (TextView) convertView.findViewById(R.id.tv_title);holder.tv_content= (TextView) convertView.findViewById(R.id.tv_content);holder.tv_url= (TextView) convertView.findViewById(R.id.tv_url);holder.tv_content.setMovementMethod(ScrollingMovementMethod.getInstance());convertView.setTag(holder);}else {holder= (ViewHolder) convertView.getTag();}Joker joker= (Joker) getItem(position);holder.tv_title.setText(joker.getTitle().toString());holder.tv_content.setText(joker.getContent().toString()+joker.getPoster());
//       CharSequence cs= Html.escapeHtml(joker.getContent().toString());
//        holder.tv_content.setText(cs);
//        holder.tv_content.setMovementMethod(LinkMovementMethod.getInstance());//点击时候产生超链接holder.tv_url.setText(joker.getUrl().toString());holder.tv_url.setMovementMethod(LinkMovementMethod.getInstance());return convertView;}class ViewHolder {private TextView tv_title,tv_content,tv_url;}
}

MainAcvitity:

public class MainActivity extends AppCompatActivity {private ListView lv_joker;private String url="http://api.laifudao.com/open/xiaohua.json";private MyThread thread=null;private MyHandle handle=null;private List<Joker> list=new ArrayList<>();private   String result=null;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);handle=new MyHandle();lv_joker= (ListView) findViewById(R.id.lv_joker);
//②在主线程中开启子线程if(thread==null){thread=new MyThread();thread.start();}}/*** ①定义子线程用于访问网络获取数据并发送给主线程*/class  MyThread extends Thread{//重写run方法@Overridepublic void run() {super.run();//④调用访问网络的get方法,并获取数据发送给主线程,result=loadingGet();Message message=handle.obtainMessage(1,result);handle.sendMessage(message);}}/*** ③自定义访问网络的get方法,获取数据*/private String loadingGet(){try {URL newUrl=new URL(url);HttpURLConnection conn= (HttpURLConnection) newUrl.openConnection();conn.setRequestMethod("GET");int code=conn.getResponseCode();if(code==200){InputStream is=conn.getInputStream();InputStreamReader inreader=new InputStreamReader(is);String line="";BufferedReader reader=new BufferedReader(inreader);StringBuffer buffer=new StringBuffer();while ((line=reader.readLine())!=null){buffer.append(line);}reader.close();inreader.close();is.close();conn.disconnect();return buffer.toString();}} catch (MalformedURLException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}return "访问失败";}/*** ⑤自定义Handle类接收并处理数据**/class MyHandle extends Handler{private JSONArray array=null;@Overridepublic void handleMessage(Message msg) {super.handleMessage(msg);switch (msg.what){case 1:try {array=new JSONArray(result);for (int i = 0; array!=null&&i <array.length() ; i++) {JSONObject obj=array.getJSONObject(i);Joker joker=new Joker();joker.setTitle(obj.getString("title"));joker.setContent(obj.getString("content")+obj.getString("poster"));joker.setUrl(obj.getString("url"));list.add(joker);}MyAdapter adapter=new MyAdapter(MainActivity.this,list);lv_joker.setAdapter(adapter);} catch (JSONException e) {e.printStackTrace();}break;}}}

Http协议(下载笑话网页,Get方式解析json)相关推荐

  1. golang 递归方式解析json串

    golang 递归方式解析json串 package mainimport ("fmt""encoding/json" )func jsonArrayParse ...

  2. json解析详解 java_Java解析Json数据的两种方式详解

    JSON数据解析的有点在于他的体积小,在网络上传输的时候可以更省流量,所以使用越来越广泛,下面介绍使用JsonObject和JsonArray的两种方式解析Json数据. 使用以上两种方式解析json ...

  3. 1.Android中解析json程序代码

    Android程序解析json数据可以通过gson的方式,这种情况需要导入相应的jar包.测试代码如下: @Override protected void onCreate(Bundle savedI ...

  4. Android中的JSON解析方式:json; Gson ; Fastjson

    本文主要介绍Json数据的解析 ----a,json数据的介绍 ----b,json数据的解析 ----c,gson数据的解析,谷歌公司的一种格式 ----d,fastjson数据的解析,阿里巴巴的一 ...

  5. Wget漏洞(CVE-2016-4971)利用方式解析

    漏洞描述 wget是一个用来入侵Web服务器并拦截敏感数据的计算机程序.它基于shellshock漏洞对目标进行入侵.(FB注释:wget名称的由来是"World Wide Web" ...

  6. 抓取网页数据并解析Android

    抓取网页数据并解析 标签: 网页抓取jsoupAndroid 2016-03-02 13:54 1262人阅读 评论(1) 收藏 举报  分类: Android开发(原创)(7)  版权声明:本文为博 ...

  7. Java 实现 SSH 协议的客户端登录认证方式

    摘自:http://blog.sae.sina.com.cn/archives/333/comment-page-1#comment-37391 简介: 本文首先对 SSH 协议的基础知识作以介绍,然 ...

  8. 如何用python创建一个下载网站-用Python下载一个网页保存为本地的HTML文件实例...

    我们可以用Python来将一个网页保存为本地的HTML文件,这需要用到urllib库. 比如我们要下载山东大学新闻网的一个页面,该网页如下: 实现代码如下: import urllib.request ...

  9. Java 实现 SSH 协议的客户端登录认证方式--转载

    背景 在开篇之前,让我们先对 SSH 协议有个宏观的大致了解,这样更有利于我们对本文的加深了解.首先要提到的就是计算机网络协议,所谓计算机网络协议,简单的说就是定义了一套标准和规则,使得不同计算机之间 ...

最新文章

  1. dp、sp和px的区别
  2. [置顶] Java程序员们读什么书决定了对未来职业方向的选择
  3. IIS 之 HTTP错误 404.17 - Not Found(请求的内容似乎是脚本,因而将无法由静态文件处理程序来处理。)...
  4. os:进程与线程问题
  5. ABAP-在SMARTFORMS中取消使用WORD作为编辑器
  6. CVPR 2020 HAN:《Hypergraph Attention Networks for Multimodal Learning》论文笔记
  7. windows7不支持AllocateAndGetTcpExTableFromStack
  8. Report_SRW在RDF中初始化的重要性(案例)
  9. Mac上删除音频设备
  10. AV1视频编解码器核心编码工具概述
  11. 听完蔡学镛的分享《不瞌睡的PPT制作秘诀》后的总结
  12. 奥城大学计算机专业,2018年美国大学硕士双录取最全名单
  13. 计算机如何永久删除文件无法找回,怎么找回永久删除文件 找回永久删除文件方法【详细步骤】...
  14. 热血传奇之资源文件与地图的读取分析
  15. 为什么要选择云原生数据库
  16. plot3D | 三维数据绘图(3):mesh函数、surf3D函数、spheresurf3D函数
  17. OPC是什么及OPC简介
  18. pagerank 的介绍
  19. Android性能优化之内存优化 1
  20. Fastjson1.2.47版本远程命令执行漏洞

热门文章

  1. KSM,UKSM,PKSM(2/2)
  2. 面试题-python/django/sql
  3. 整数-28d在计算机中用8位二进制表示,整数-28D,在计算机中用8位二进制表示为________。...
  4. QT 如何设置对话框的背景图片
  5. java医药管理系统论文,基于JAVA的医药管理系统.doc
  6. Python写网络爬虫(二)
  7. 三维渲染工具Mitsuba使用简介
  8. 每日刷题计划Day3笔记-动态规划
  9. 转:北京社保随时网上查询
  10. QGIS编译(跨平台编译)之十六:Expat编译(Windows、Linux、MacOS环境下编译)