群友問到這么一個問題,就是密文顯示,本身按鍵界面是沒有這個功能,這里通過寫一個響應(yīng)函數(shù)來實現(xiàn)。
先來看一下效果:
由于輸入框沒有響應(yīng)事件,所以沒法直接在輸入的過程中變成星號,因此我這里借助了一個多選框來實現(xiàn)。
當(dāng)多選框點擊選中的時候,密碼會被隱藏,以星號顯示,取消多選框的勾選時,又會恢復(fù)成密碼明文。
一、說一下它的原理:
我們在使用星號顯示的時候,其實是把輸入框原本內(nèi)容存入到一個文本當(dāng)中。這樣就不會因為輸入框內(nèi)容修改成星號,而導(dǎo)致內(nèi)容丟失了。
二、具體的操作步驟:
界面中有效的元素只有兩個輸入框和一個多選框,這里就不說它了。
我們直接介紹多選框點擊的響應(yīng)函數(shù):
1、獲取輸入框1、輸入框2的內(nèi)容
Dim m=uip.GetAttribute("輸入框1")
Dim n=uip.GetAttribute("輸入框2")
2、獲取多選框的選中狀態(tài)
Dim x=uip.GetAttribute("多選框1")
3、對于多選框的選中狀態(tài)進行判斷,2種情況
(1)選中的情況,把輸入框2(也就是密碼輸入框)的內(nèi)容讀取出來,并存入到指定的文本當(dāng)中,這里我是以輸入框1的內(nèi)容作為文本的名稱,用固定的名稱也可以,在存儲之后,就可以給輸入框?qū)懭霂讉€星號了。
(2)未選中的情況,讀取上一步中存取輸入框2的文本,然后把內(nèi)容寫入到輸入框2中,替換掉星號。
If x["選中"] Then?
? ? ? ? If len(m["初始文本"]) = 0 Then?
? ? ? ? ? ? ShowMessage "先輸入賬號"
? ? ? ? ? ? UIP.SetAttribute ("多選框1",{"選中":false})
? ? ? ? Else? ? ? ? ? ? ?
? ? ? ? ? ? file.write ("/sdcard/pictures/" & m["初始文本"] & ".txt",n["初始文本"])
? ? ? ? ? ? uip.SetAttribute ("輸入框2",{"初始文本":"********"})
? ? ? ? End If?
? ? Else?
? ? ? ? Dim k=file.read ("/sdcard/pictures/" & m["初始文本"] & ".txt")
? ? ? ? uip.SetAttribute ("輸入框2",{"初始文本":k})
? ? End If
最終的代碼:
三、關(guān)于腳本調(diào)用輸入框:
當(dāng)我們腳本要調(diào)用輸入框的時候,先把輸入框的內(nèi)容讀取出來,然后判斷輸入框是星號還是密碼,如果是星號就讀取存入密碼的文本,如果不是星號,就可以直接讀取輸入框的內(nèi)容使用。