Android EditText插入字符串到光標所在位置和刪除

 

 實踐:

 

 /**獲取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);

發佈了29 篇原創文章 · 獲贊 0 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章