Android修改 EditText 中的光标位置

时间:2023-01-22 22:40:42

Android 的 EditText 控件默认获取焦点的时候, 插入光标是在第一个位置的,如果EditText中设置了文本, 这个时候光标是在文本的最前面, 而不是文本的最后. 为了方便用户使用, 需要把光标移动到文本最后, 但是EditText 没有提供 setCursor 函数.  经查看其文档 发现 setSelection 函数可以完成该功能. 如下:

Java代码 
  1. EditText et = ... 
  2. String text = "text"
  3. et.setText(text); 
  4. et.setSelection(text.length());


如果对edittext组件设置了editText.setFocusable(false);需要重新获取焦点则必须执行:
   editText.setFocusable(ture);
    editText.setFocusableInTouchMode(true);
    editText.requestFocus();
 
注意:这种情况下,当重新点击文本框,是无法打开软键盘,必须点击第二次才能打开。
 
如果改为:
editText.clearFocus(); 失去焦点
 
 
editText.requestFocus();获取焦点