您的位置:首页 > 移动开发 > Android开发

android关于EditText与其光标

2015-07-07 15:23 567 查看
(该文属整合性文章)

android EditText插入字符串到光标所在位置

在安卓中处理文本编辑的时候,我们一般都是用
EditText
控件,除了基本的输入文字功能之外,我们很可能还需要一些更灵活的功能,比如在光标所在位置插入一张图片。但是
EditText
本身只有追加函数append(),并没有insert方法,难道要我们自己写方法实现插入功能吗,经过研究之后发现,
EditText
有已经实现好了的插入方法,不过在其附属的另外一个对象
Editable
中。通过
getEditableText()方法可以获得该对象。下面的一段代码演示了如何在
EditText
的光标之处插入文字:


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的返回结果,这个结果应该自动插入到光标处,所以上面的讨论是有实际意义的。

这里我可以解释一下原作者的意思,假如我们插入的是表情(至于如何向EditText插入表情,可以上网百度),对于使用这段话就很有必要了,不然可能即便光标不再文本末,插入表情也会插入到末尾的。

android java代码设置EditText输入类型

setInputType(android.text.InputType.*);

//可以根据自己的需要设置相应的类型。

怎样把光标放在EditText中文本的末尾处?

Editable etext = mSubjectTextEditor.getText();
Selection.setSelection(etext, etext.length());
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: