在appinventor中,一直以來都缺少自帶ASCII碼的編碼與解碼的功能,一般代替方法就是使用JSON數(shù)組存放ASCII表,使用查表法來實(shí)現(xiàn)ascii的編碼與解碼的難題。本章,我們將使用JavaReflector組件來解決ascii的編碼解碼的難題。
界面設(shè)計(jì)

我們?cè)谏厦娴奈谋究蜉斎胍粋€(gè)字符或字符串,點(diǎn)擊編碼,編碼結(jié)果將顯示編碼后都ascii代碼。
我們?cè)谙旅娴奈谋究蜉斎隺scii代碼,點(diǎn)擊解碼,解碼結(jié)果將顯示解碼后都字符。
邏輯設(shè)計(jì)
接口定義

我們先這樣定義兩個(gè)函數(shù),先不寫其中具體的實(shí)現(xiàn),在以往我們一般是在其中放置查找列表/字典的相關(guān)邏輯,稍后我們將考慮在其中放置JavaReflector相關(guān)邏輯,這里我們先假設(shè)這兩個(gè)塊是可用的,先去寫其他業(yè)務(wù)邏輯代碼。
相關(guān)的業(yè)務(wù)邏輯代碼

如上圖,為編碼與解碼的按鈕的點(diǎn)擊事件的實(shí)現(xiàn)。
實(shí)現(xiàn)ascii的編碼與解碼的功能

根據(jù)文檔所說,charData可以傳入文本,也可以傳入數(shù)字,最終都會(huì)構(gòu)造出char數(shù)據(jù)。
據(jù)此,我們很容易寫出以下代碼,其中ToString(object)方法用于將任意對(duì)象轉(zhuǎn)化為字符串表示形式,這里是將char數(shù)據(jù)轉(zhuǎn)換為ai的字符串類型。

現(xiàn)在,我們來實(shí)現(xiàn)另一個(gè)函數(shù)
字符轉(zhuǎn)ascii碼(字符)
首先,我們需要將字符文本轉(zhuǎn)化為char數(shù)據(jù),如圖

char數(shù)據(jù)的包裝數(shù)據(jù)類型為java.lang.Character,據(jù)此,java.lang.Character.hashCode()規(guī)定,char的包裝對(duì)象的hashCode均為一個(gè)相等的代碼,在0-127范圍內(nèi),與ascii編碼一一對(duì)應(yīng),所以我們可以編寫如下圖的代碼

這樣一個(gè)ASCII的編碼與解碼的一個(gè)案例就完成了。