(2) AppInventor高级组件之JavaReflecto
2020-02-22 本文已影响0人
zhangzq
在appinventor中,一直以来都缺少自带ASCII码的编码与解码的功能,一般代替方法就是使用JSON数组存放ASCII表,使用查表法来实现ascii的编码与解码的难题。本章,我们将使用JavaReflector组件来解决ascii的编码解码的难题。
界面设计
界面设计我们在上面的文本框输入一个字符或字符串,点击编码,编码结果将显示编码后都ascii代码。
我们在下面的文本框输入ascii代码,点击解码,解码结果将显示解码后都字符。
逻辑设计
接口定义
ASCII编码与解码的实现我们先这样定义两个函数,先不写其中具体的实现,在以往我们一般是在其中放置查找列表/字典的相关逻辑,稍后我们将考虑在其中放置JavaReflector相关逻辑,这里我们先假设这两个块是可用的,先去写其他业务逻辑代码。
相关的业务逻辑代码
编码与解码的按钮事件如上图,为编码与解码的按钮的点击事件的实现。
实现ascii的编码与解码的功能
BuildChar文档根据文档所说,charData可以传入文本,也可以传入数字,最终都会构造出char数据。
据此,我们很容易写出以下代码,其中ToString(object)方法用于将任意对象转化为字符串表示形式,这里是将char数据转换为ai的字符串类型。
ascii解码
现在,我们来实现另一个函数
字符转ascii码(字符)
首先,我们需要将字符文本转化为char数据,如图
字符2char数据
char数据的包装数据类型为java.lang.Character,据此,java.lang.Character.hashCode()规定,char的包装对象的hashCode均为一个相等的代码,在0-127范围内,与ascii编码一一对应,所以我们可以编写如下图的代码
字符转ascii码(字符)
这样一个ASCII的编码与解码的一个案例就完成了。