Android数据加载和Json解析——蓝本

Android数据加载和Json解析——蓝本

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/117232.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 三周第四次课(4月9日) 4.1 df命令 4.2 du命令 4.3/4.4 磁盘分区

    三周第四次课(4月9日) 4.1 df命令 4.2 du命令 4.3/4.4 磁盘分区

    2021年5月26日
  • SpringBoot入门(个人总结)

    @纯属个人学习总结,不喜勿喷哈。(学习来自慕课网)我觉得学习SpringBoot需要具备的前置知识熟悉maven构建项目;懂得Spring注解开发的知识;了解restful API的理论知识(http://www.ruanyifeng.com/blog/2011/09/restful.html)一、SpringBoot介绍我们在做java的项目中经常被xml的配置搞得头大…

    2021年11月30日
  • 基于maven的spring boot 项目porm文件配置(含定时器,数据抓取,分词器依赖配置)

    基于maven的spring boot 项目porm文件配置(含定时器,数据抓取,分词器依赖配置)&lt;projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0http://maven.apache.org/xsd/maven-4.0….

    2022年6月17日
  • 查看端口占用及解决

    查看端口占用及解决1、开始>运行>cmd,或者是window+R组合键,调出命令窗口;2、输入命令:netstat-ano,列出所有端口的情况。在列表中观察被占用的端口,比如是8005,首先找到它。

    2022年7月2日
  • 约瑟夫环 OJ

    约瑟夫环 OJ循环链表的应用,并且应为不带头节点的循环链表,首先创建一个循环链表,在函数JOHEPHUS中进行操作,主要就是用for找到要删除的元素(注意p==1单独考虑,for中p至少为2),删除元素并输出直至链表为空。for(j=1;j&lt;=p-1;j++)把寻找报数的位置和寻找要删除的节点的前驱结合在一个循环中,减少时间复杂度,因为第一次写我是在主函数中用r指向找到的要删除的节点,然后传入de…

    2022年5月29日
  • 基于qt的简单小游戏_中国象棋单机版2,0

    基于qt的简单小游戏_中国象棋单机版2,0最近对Qt这个跨平台C++图形应用程序框架很感兴趣,闲暇时间多学了一下,收获很多,也踩了不少坑,在这里记录一下,分享心得。Qt的安装安装Qt并不麻烦,就是网速有点慢。推荐使用国内镜像代理下载。首先进入Qt官网,在TryQt处点击DownloadQt,填完基本信息后,点击提交就可以下载Qt下载器了。当然,你也可以直接去国内镜像站上下载Qt下载器。打开Qt下载器,注册Qt账户,并登录,同意协议。若要使用国内镜像代理,点击左下角的配置图标。然后从百度上选择

    2022年8月29日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号