android edittext光标问题
有时候需要让光标显示在EditText的指定位置或者选中某些文本。同样,为了方便用户输入以提升用户体验,可能需要使EditText获得或失去焦点。1. 设置光标到指定位置EditText et = (EditText) findViewById(R.id.etTest);et.setSelection(2);PS:当内容过多时,可通过设置光标位置来让该位置的内容显示在屏幕上。
·
有时候需要让光标显示在EditText的指定位置或者选中某些文本。同样,为了方便用户输入以提升用户体验,可能需要使EditText获得或失去焦点。
1. 设置光标到指定位置
EditText et = (EditText) findViewById(R.id.etTest);
et.setSelection(2);
PS:当内容过多时,可通过设置光标位置来让该位置的内容显示在屏幕上。
2. 隐藏光标
EditText et = (EditText) findViewById(R.id.etTest);
//设置光标不显示,但不能设置光标颜色
et.setCursorVisible(false);
-----------------------------------------------------------
Android中EditText如何定位光标位置
代码:edittext.setSelection(int);
范例:
et.setText(content);//设置EditText控件的内容
et.setSelection(content.length());//将光标移至文字末尾
-----------------------------------------------------------
Android 利用Selection包中方法设置EditText的光标
提起Android的EditText的光标选择问题,可以通过android.text.Selection包提供的方法来实现,Android SDK提供了有关光标选择的多种方法,比如说getSelectionEnd、getSelectionStart、removeSelection、selectAll、setSelection,详细的参数声明如下:
final static int getSelectionEnd(CharSequence text)
Return the offset of the selection edge or cursor, or -1 if there is no selection or cursor.
final static int getSelectionStart(CharSequence text)
Return the offset of the selection anchor or cursor, or -1 if there is no selection or cursor.
final static void removeSelection(Spannable text)
Remove the selection or cursor, if any, from the text.
final static void selectAll(Spannable text)
Select the entire text.
final static void setSelection(Spannable text, int index)
Move the cursor to offset index.
static void setSelection(Spannable text, int start, int stop)
Set the selection anchor to start and the selection edge to stop.
提示大家,从上面的参数来看,可以发现Spannable类型,常规我们的EditText中的编辑中Editable直接实现Spannable接口,所以我们可以通过下面的方法来设置选择:
Editable ea= etEdit.getText(); //etEdit为EditText
Selection.setSelection(ea, ea.length()-1); // Android开发网提示这里ea的长度必须大于1。否则会有异常发生
-----------------------------------------------------------
2013-6-13号补充:
android EditText获取光标位置并插入字符删除字符
1.获取光标位置
int index = editText.getSelectionStart();
2.在光标处插入字符
int index = editText.getSelectionStart();
Editable editable = editText.getText();
editable.insert(index, "aaaa");
3.删除光标前字符
3.删除光标前字符
int index = editText.getSelectionStart();
Editable editable = editText.getText();
editable.delete(index-1, index);
-----------------------------------------------------------------------------------------------------------------------------------
更多推荐



所有评论(0)