本次团队项目做业我主要负责的是 Android 端的文本读取以及和服务器交互的部分。因为以前对 Android 一无所知,因此花了很长时间来了解和熟悉。Android 自己也比较复杂,对于一个不懂 Java 的初学者来讲感受不是很友好。以前的很长一段时间都在学习和了解,到后来尝试多了才初有眉目。如下是我在完成项目的过程当中学到的东西,大部分来自网络,同窗也帮了我很大的忙。具体内容整理以下。html
以前在博客园写博客一直都是在 VS Code 上写好,粘贴过去,很繁琐,修改也很麻烦,一直在找能够直接发布到博客园的方法。有一些方法能够发布可是不支持 markdown,因此一直没找到好的办法。在刚开始写这篇博客时,恰好要找一个插件,就顺手在商店里搜了一下 cnblog,刚好搜到这个插件,很是好用,能够说是十分偶然了,感谢这为做者。安装方法以下。
在 VS Code 的插件商店搜索 WriteCnblog,点击安装。具体使用方法在做者的博客能够查看。用vscode写博客和发布
做者还有另一篇文章,讲如何制做插件。vscode编写插件详细过程java
Android 常常会用 Json 传数据,因此读取本地 Json 的功能十分必要,虽然不是很复杂,可是我也花了点时间来了解和尝试,记录下方法以备往后查阅。json
public static String getJson(Context mContext, String fileName) { ///将json数据变成字符串 StringBuilder stringBuilder = new StringBuilder(); //获取assets资源管理器 AssetManager assetManager = mContext.getAssets(); try { //获取assets资源管理器 //AssetManager assetManager = mContext.getAssets(); //经过管理器打开文件并读取 BufferedReader bf = new BufferedReader(new InputStreamReader( assetManager.open(fileName))); String line; while ((line = bf.readLine()) != null) { stringBuilder.append(line); } } catch (IOException e) { e.printStackTrace(); } return stringBuilder.toString(); }
Gson(又称 Google Gson)是 Google 公司发布的一个开放源代码的 Java 库,主要用途为序列化 Java 对象为 JSON 字符串,或反序列化 JSON 字符串成 Java 对象。而 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成,普遍应用于各类数据的交互中,尤为是服务器与客户端的交互。visual-studio-code
Gson 提供了 fromJson()
和 toJson()
两个直接解析和生成 Json 的方法。而且能够重载。api
Gson gson = new Gson(); int i = gson.fromJson("100", int.class); //100 double d = gson.fromJson("\"99.99\"", double.class); //99.99 boolean b = gson.fromJson("true", boolean.class); // true String str = gson.fromJson("String", String.class); // String
Gson gson = new Gson(); String jsonNumber = gson.toJson(100); // 100 String jsonBoolean = gson.toJson(false); // false String jsonString = gson.toJson("String"); //"String"
本次的项目就用到了这个方法。服务器
public class GsonRead { public String Title; public String Auther; public String Text; public static List getGson(String jsonString, String Title, String Auther, String Text) { Gson gson = new Gson(); GsonRead gsonRead = gson.fromJson(jsonString, GsonRead.class); Title = gsonRead.Title; Auther = gsonRead.Auther; Text = gsonRead.Text; System.out.println(Title); System.out.println(Text); List<String> list = new ArrayList<String>(); list.add(Title); list.add(Auther); list.add(Text); return list; } }
其中使用 List<String>
来传送 String 的数据。markdown
okhttp 有 get 和 post 方法。我应该使用的是 get 方法,传参数给服务器,而后获取 json。以前错误的认为应该是 post 方法,在使用 Apizza 测试 api 的时候才意识到错误。网络