如何在EditText中设置光标位置?

nil*_*ila 222 android android-edittext

有两个EditText,在加载页面时,第一个EditText中设置了一个文本,所以现在光标将在起始位置EditText,我想在第二个EditText中设置光标位置,其中不包含任何数据.这该怎么做?

Not*_*Man 458

position是int的位置:

editText1.setSelection(position)
Run Code Online (Sandbox Code Playgroud)


MKJ*_*ekh 94

在这里以编程方式更新EditText的文本后,我已经这样做了将光标位置设置为文本的结尾,etmsg是EditText

etmsg.setText("Updated Text From another Activity");
int position = etmsg.length();
Editable etext = etmsg.getText();
Selection.setSelection(etext, position);
Run Code Online (Sandbox Code Playgroud)

  • +1啊啊!很好,它帮助我在edittext中设置光标位置. (4认同)
  • 这不适合我.我的EditText中有Spannable字符串.有解决方法吗? (2认同)

Int*_*iya 33

如何在Android中设置EditText光标位置

Code下面是将光标设置为开始EditText:

 EditText editText = (EditText)findViewById(R.id.edittext_id);
 editText.setSelection(0);
Run Code Online (Sandbox Code Playgroud)

Code下面是将光标设置EditText:

EditText editText = (EditText)findViewById(R.id.edittext_id);
editText.setSelection(editText.getText().length());
Run Code Online (Sandbox Code Playgroud)

下面的代码是在第2个字符位置后设置光标:

 EditText editText = (EditText)findViewById(R.id.edittext_id);
 editText.setSelection(2);
Run Code Online (Sandbox Code Playgroud)


Ren*_*eno 16

我想在edittext中设置不包含数据的光标位置

在一个空的EditText中只有一个位置,它是setSelection(0).

或者你的意思是你希望EditText在你的活动开始时关注你的焦点?在那种情况下它 requestFocus()

  • 如果我没记错的话,当EditText请求焦点时,光标就会被设置.[阅读本文](http://plainoldstan.blogspot.com/2010/09/android-set-focus-and-show-soft.html) (3认同)

Sye*_*der 12

使用以下行

e2.setSelection(e2.length());
Run Code Online (Sandbox Code Playgroud)

e2 是编辑文本对象名称


小智 9

让editText2是你的第二个EditText视图.然后在onResume()中放入以下代码片段

editText2.setFocusableInTouchMode(true);
editText2.requestFocus();
Run Code Online (Sandbox Code Playgroud)

或者说

<requestFocus />
Run Code Online (Sandbox Code Playgroud)

在第二个EditText视图的xml布局中.


dev*_*abh 7

一段时间编辑文本光标donot来自特定位置是否我们直接使用editText.setSelection(position);.在这种情况下,你可以尝试

editText.post(new Runnable() {
                @Override
                public void run() {
                    editText.setSelection(string.length());
                }
            });
Run Code Online (Sandbox Code Playgroud)


Avi*_*ash 5

setSelection(int index)方法Edittext应该允许你这样做.


小智 5

如果要将光标放在EditText上的某个位置,可以使用:

yourEditText.setSelection(position);
Run Code Online (Sandbox Code Playgroud)

此外,还可以设置初始位置和最终位置,这样您就可以通过编程方式选择一些文本:

yourEditText.setSelection(startPosition, endPosition);
Run Code Online (Sandbox Code Playgroud)

请注意,由于您可以将光标放置在字符之前之后,因此设置选择可能会比较棘手,下图说明了在这种情况下如何进行索引工作:

在此处输入图片说明

因此,如果您希望光标位于文本的末尾,只需将其设置为即可yourEditText.length()