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

我們在上面的文本框輸入一個字符或字符串,點擊編碼,編碼結(jié)果將顯示編碼后都ascii代碼。
我們在下面的文本框輸入ascii代碼,點擊解碼,解碼結(jié)果將顯示解碼后都字符。
邏輯設(shè)計
接口定義

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

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

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

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

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

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