2014年6月18日 星期三

【Android】EditText && Editable && Selection

會研究到這兩個東西,是因為在作網路連線功能時,要讓使用者自行輸入IP來決定連線對象。

IPv4機制需要四組0~255的數字。(現在知道了,那其實是四個Byte。)所以需要四個EditText輸入框。

但問題是.......

當我在第一組數字輸入完後,我希望跳到下一組數字的輸入框......

容易!

EditText下的getText()可以獲得一個Editable物件。這個物件長的很像StringBuffer,雖然不是,但用法概念很像。



問題是如果我要用「刪除鍵(BackSpace←)」刪除文字,同時具有「跳回上一個EditText輸入框」的功能...結果也不難,但問題是跳過去後,游標會停留在框內的文字開頭。

例如框內如果有「100」,游標會出現在「1」之前,但我希望它直接出現在最後一個「0」的後面。

這個時候就可以用Selection來決定游標要停留在哪裡。



其餘的函式具體功能還沒機會嘗試研究,但主要使用的是setSelection(...)。

先將EditText.getText()獲得的Editable物件當成引數傳入。(Editable其實是Spannable的子類別。)接著決定「位置」,──如果傳入「頭」「尾」,則會把「頭」「尾」之間的文字「選」起來,功能就類似滑鼠的拖曳。



其實是很簡單的一件事,但很實用。

沒有留言:

張貼留言