實踐:
/**獲取EditText光標所在的位置*/
private int getEditTextCursorIndex(EditText mEditText){
return mEditText.getSelectionStart();
}
/**向EditText指定光標位置插入字符串*/
private void insertText(EditText mEditText, String mText){
mEditText.getText().insert(getEditTextCursorIndex(mEditText), mText);
}
/**向EditText指定光標位置刪除字符串*/
private void deleteText(EditText mEditText){
if(!StringUtils.isEmpty(mEditText.getText().toString())){
mEditText.getText().delete(getEditTextCursorIndex(mEditText)-1, getEditTextCursorIndex(mEditText));
}
}
------------------------------------------------------------------------------------------------------------
EditText mTextInput=(EditText)findViewById(R.id.input);//EditText對象
int index = mTextInput.getSelectionStart();//獲取光標所在位置
String text="I want to input str";
(方法1):
Editable edit = mTextInput.getEditableText();//獲取EditText的文字
if (index < 0 || index >= edit.length() ){
edit.append(text);
}else{
edit.insert(index,text);//光標所在位置插入文字
}
----------------------------------------------------
(方法2):
mTextInput.getText().insert(index,text);//光標所在位置插入文字
--------------------------------------------------------------
EditText editor = (EditText)getCurrentView();
int cursor = editor.getSelectionStart();
editor.getText().insert(cursor,delta);
EditText 中插入表情圖片:
//SpannableString連續的字符串,長度不可變,同時可以附加一些object;可變的話使用SpannableStringBuilder,參考sdk文檔
SpannableString ss = new SpannableString(getText().toString()+"[smile]");
//得到要顯示圖片的資源
Drawable d = getResources().getDrawable(id);
//設置高度
d.setBounds(0, 0, d.getIntrinsicWidth(), d.getIntrinsicHeight());
//跨度底部應與周圍文本的基線對齊
ImageSpan span = new ImageSpan(d, ImageSpan.ALIGN_BASELINE);
//附加圖片
ss.setSpan(span, getText().length(),getText().length()+"[smile]".length(), Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
setText(ss);