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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • GoogLeNet v1结构「建议收藏」

    GoogLeNet v1结构「建议收藏」GooLeNetInception块GooLeNetGooLeNet是google2014年推出的深度神经网络模型,原论文名称为:Goingdeeperwithconvolutions,在沐神的书上也被叫做含并⾏连结的⽹络(主要由于Inception块中的结构)。该模型在2014年ILSVRC2014比赛中竞赛中夺得冠军,14年之后也在不断发展,这里就介绍一下初始的版本。Inception块GooLeNet思想有点类似于VGG,先构建块,网络主要通过块的堆叠实现,不过这里的块与VGG块不同,称

    2022年8月14日
    11
  • 滑动窗口 leetcode_滑动窗口的概念

    滑动窗口 leetcode_滑动窗口的概念原题链接给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。返回滑动窗口中的最大值。示例 1:输入:nums = [1,3,-1,-3,5,3,6,7], k = 3输出:[3,3,5,5,6,7]解释:滑动窗口的位置 最大值————— —–[1 3 -1] -3 5 3 6 7

    2022年8月9日
    10
  • mysql乐观锁总结和实践(一)

    mysql乐观锁总结和实践(一)

    2022年3月7日
    64
  • MATLAB中meshgrid函数用法

    MATLAB中meshgrid函数用法meshgrid是MATLAB中用于生成网格采样点的函数。在计算机中进行绘图操作时,通常会给出如z=x^2+y^2会给出表格数据,涉及到x、y、z三组数据,而x、y这两组数据可以看做是在Oxy平面内对坐标进行采样得到的坐标对(x,y)。表中一共有7*7=49个数据,我们分别标出来,得到下图 试问如何用MATLAB函数画出此图

    2022年6月6日
    101
  • 假装自己是黑客的代码_假装黑客的软件

    假装自己是黑客的代码_假装黑客的软件假装自己是“黑客”今天分享一个好玩的东西话不多说上图看起来是不是很酷炫?这个可以通过按数字或鼠标点击来打开字雨,卫星地图等页面。还有一些功能可以自己无聊的时候试一试哦。怎么做呢?一,最简单的方法在网页上输入网址:http://geekprank.com/hacker/二,如果要让别人看起来你厉害一点1.新建一个文档2.输入starthttp://geekprank.com/hacker/3.保存,名字自取,改后缀名为bat然后就能通过双击这个文件打开网址啦。。。三,实在懒得

    2022年9月28日
    2
  • scratch编程小游戏——黄金矿工

    黄金矿工的玩法就是操控一个不断摆来摆去的钩子去挖出黄金,现在我们就来用scratch编一个黄金矿工首先新建好变量:矿车要画出许多的造型:代码:钩爪的绳索是这个游戏最为复制的一点,方法是移动后画出一条线,返回时用背景一样的颜色来覆盖,我们首先来画出造型:红色的是中心位置代码如下:(此代码需要用到一部分自定义,不懂的见文章末尾链接)自定义部分是这个代码的核心:接下来是黄金,造型的话要画出三个:大、中、小各一个代码如下:黄金代码是程序中非常重要的一环,一定不要有差错现

    2022年4月4日
    2.3K

发表回复

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

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