android 软删除光标字符,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);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值