天天看點

android EditText插入字元串到光标所在位置(表情開發用到,記下)

在安卓中處理文本編輯的時候,我們一般都是用

EditText

控件,除了基本的輸入文字功能之外,我們很可能還需要一些更靈活的功能,比如在光标所在位置插入一張圖檔。但是

EditText

本身隻有追加函數append(),并沒有insert方法,難道要我們自己寫方法實作插入功能嗎,經過研究之後發現,

EditText

有已經實作好了的插入方法,不過在其附屬的另外一個對象

Editable

中。通過

getEditableText()方法可以獲得該對象。下面的一段代碼示範了如何在

EditText

的光标之處插入文字:

1 2 3 4 5 6 7 8 9

EditText mEditText = (EditText)findViewById(R.id.input);

//EditText對象

int index = mEditText.getSelectionStart();

//擷取光标所在位置

String text=

"I want to input str"

;

Editable edit = mEditText.getEditableText();

//擷取EditText的文字

if

(index < 0 || index >= edit.length() ){

edit.append(text);

}

else

{

edit.insert(index,text);

//光标所在位置插入文字

}

你可能會說,在光标之處插入文字,那還不簡單,使用者直接通過輸入法打出來的文字不都是在光标之處嗎,你上面講的東西有什麼實際意義?的确是這樣,但是有些情況下,我們希望光标處的文字或者其他東西并不是來自于使用者輸入,可能是來自于其他app或者activity的傳回結果,這個結果應該自動插入到光标處,是以上面的讨論是有實際意義的。