• 第一轮铁大树洞APP开发冲刺(3)


    写在前面

    经过昨天的错误方向尝试后,今天终于找到了正确的方向。APP不过是一个客户端,请求数据的事交给servlet去处理就好,app只需要获得数据并处理就好。在想明白这些后,一切就明朗了起来。起床后先是学习了Okhttp的知识,下午实现了RecyclerView的展示和下拉刷新模块。
    团队冲刺博客地址:https://www.cnblogs.com/three3/p/12733546.html

    正文

    今日成果展示

    首先是RecyclerView显示所有内容:

    然后下拉可以刷新:

    逻辑和困难分析

    这个看似很简单的功能,实现起来是非常的费事啊。在安卓开发中,请求数据和更新数据的行为都需要在非主线程进行,防止数据堵塞。我们这里封装了Okhttp获取call,然后在Activity中对其回调进行处理,处理完成后通过Message传递给Handler来通知主线程更新UI。同时在做这些事之前我们要定义一个响应的瀑布流适配器,以用来放置数据等。至于下拉刷新功能,导入SwipeRefreshLayout后就可以很简单的实现了。主要说说今天遇到的困难:

    • 无法处理http请求。从安卓9.0后,不再支持使用不安全的连接(http),可我自己的API都是http的,我也没钱去买域名申请https服务器。经过一番操作后,终于搞定了。如图:
      在Manifests文件里首先添加网络请求

      在application下打开对http的访问请求:

      注意,我们在打开后需要删除掉APP然后再安装一次。这样才能获取到权限。
    • 对于数据的处理犯了难。从后台提交了json数据,前台怎么转成list呢?我们可以这样:
                            Type type = new TypeToken<List<Post>>(){}.getType();
                            List<Post> posts = mGson.fromJson(response.body().string(), type);
    

    明日任务

    今天晚些时候整理了一下回帖模块的思路。明天估计能写完。

  • 相关阅读:
    搭建SSM框架 Demo
    Mybatis (ParameterType) 如何传递多个不同类型的参数
    IDEA如何将本地项目上传到码云
    VUE项目
    Oralce(三)特殊符号
    NodeJS and Intellij IDEA
    Handler
    Netty 框架 (一) channelDisconnected、channelClosed两个事件区别
    数据库索引
    Websocket
  • 原文地址:https://www.cnblogs.com/wushenjiang/p/12734528.html
Copyright © 2020-2023  润新知