| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 移动开发 -> 连接远程URL与API&连接有道API -> 正文阅读 |
|
[移动开发]连接远程URL与API&连接有道API |
作者:recommend-item-box-tow |
参考资料:Android中HttpURLConnection使用详解_小鹿迷鹿的博客-CSDN博客_android httpurlconnection 信息流逻辑:inputStream(信息流)---->inputStreamReader(流载体)---->ButteredReader(将信息流读取)---->通过(String)Line---->StringBuilder(灵活字符串类)
URL读取逻辑
总逻辑:onClicked{new Tread(new Runable(){@Override run()}).start()} onClicked中实现了Tread.start()//线程启动 线程需要一个new Runable类实例化 Runable重写一个run方法 run方法实现以下几个任务
例子:开发一款基于有道翻译的极简翻译APP21/09/2022 00:47 第一阶段:总体设计阶段连接远程API,需要实现android studio联网问题,我选用了资料中方法3. 参考资料【Android】Android Studio虚拟机不能联网_-LDL的博客-CSDN博客_android studio虚拟机怎么联网 有的时候3G连不上,可以开启飞行模式达到重启的作用。 上述使用java的多线程技术实现URL连接,但是在安卓中我们完全可以使用AsyncTask的模式来实现 参考资料:详解Android中AsyncTask的使用_liuhe688的博客-CSDN博客_asynctask, 连接API主要在Activity中后台运行,引入AsyncTask<String, Integer, String>的概念 但是其实AsyncTask中的数据类型在这个例子中并不重要。 借这个机会也更加系统的学习了这一后台方式。(上次的学习这一知识点时一直没有时间练习) 对于方法:?doInBackground(String… params)来说,它用于处理主要事务 在这个需求下指的是API的连接,JSON对象的解析。 但是注意不能犹豫更新系统UI 系统UI的重置更新要在onPostExecute(String result)方法解决。 第二阶段:通过连接有道API,接收数据主要分成两个阶段: 和URL建立联系
str为EditText输入的部分,URL部分符合有道API的申请格式。 处理信息流
StringBuilder是一种可以通过append(String)在字符串后面续写的字符串格式。 上面两个部分具有普遍的参考性,除了URL需要个性化配置。 第三阶段:解析JSON数据并使之正常输出参考资料:https://wangbaiyuan.cn/android-java-parsing-api-youdao-translation-json-data.html 有道词典JSON基本上做到了要素全覆盖,这也是我选用这个作为练习的原因 boolean flag=JSONObject.has(“key”)判断是否存在 X value=JSONObject.getX(“key”)得到所需数据 1.获取URL传递过来的JSON信息
2.解析正常数据:
3.JSON key=translationStr对应很多JSON value情况:
4.JSON key=basic对应的JSON value也是JSONObject
第四阶段:实现Fragment承接相应的功能(增加程序可维护性)public void onActivityCreated(Bundle savedInstanceState)中实现后台运行 题外注意:
然后View下才能得到组件;但是在CreateView下需要return 新的view
注意最下面的一行,可以达到同样效果; 之后可以试一试:实现不同的Fragment实现不同的API; |
|
移动开发 最新文章 |
Vue3装载axios和element-ui |
android adb cmd |
【xcode】Xcode常用快捷键与技巧 |
Android开发中的线程池使用 |
Java 和 Android 的 Base64 |
Android 测试文字编码格式 |
微信小程序支付 |
安卓权限记录 |
知乎之自动养号 |
【Android Jetpack】DataStore |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/29 16:22:22- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |