(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的编码与解码的一个案例就完成了。

上一篇下一篇

猜你喜欢

热点阅读