页面上有两个 EditText
,加载页面时,在第一个 EditText 中设置了文本,这样光标会在 EditText
的起始位置,我想要将光标位置设置到第二个没有数据的 EditText 中。如何实现?
页面上有两个 EditText
,加载页面时,在第一个 EditText 中设置了文本,这样光标会在 EditText
的起始位置,我想要将光标位置设置到第二个没有数据的 EditText 中。如何实现?
position 是一个整数:
editText1.setSelection(position)
我已经用以下方法在程序中更新EditText文本后将光标位置设置到文本末尾:
其中,etmsg
是EditText。
etmsg.setText("Updated Text From another Activity");
int position = etmsg.length();
Editable etext = etmsg.getText();
Selection.setSelection(etext, position);
etmsg.setText("我的新文本..."); etmsg.setSelection(etmsg.length());
- Steve Blackwell以下代码将将光标设置到起始位置在EditText
中:
EditText editText = (EditText)findViewById(R.id.edittext_id);
editText.setSelection(0);
以下代码将光标设置到EditText
的末尾:Set cursor to end
EditText editText = (EditText)findViewById(R.id.edittext_id);
editText.setSelection(editText.getText().length());
以下代码是将光标设置在第2个字符位置之后:
EditText editText = (EditText)findViewById(R.id.edittext_id);
editText.setSelection(2);
我想在不包含数据的EditText中设置光标位置
在空的EditText中只有一个位置,它是setSelection(0)
。
或者你是想在活动打开时让你的EditText
获得焦点吗?在这种情况下,它是requestFocus()
。
假设editText2是您的第二个EditText视图,则将以下代码片段放置在 onResume() 中
editText2.setFocusableInTouchMode(true);
editText2.requestFocus();
或者放置
<requestFocus />
在第二个 EditText 视图的 XML 布局中。请使用下面的代码行:
e2.setSelection(e2.length());
e2
是编辑文本的对象名称。
有时候在编辑文本时,如果我们直接使用editText.setSelection(position);
,光标并不会停留在特定的位置。
这种情况下,您可以尝试:
editText.post(new Runnable() {
@Override
public void run() {
editText.setSelection(string.length());
}
});
Edittext
中的 setSelection(int index)
方法应该可以让您实现这一操作。这段代码可以帮助你将光标显示在编辑文本的最后位置。
editText.requestFocus();
editText.setSelection(editText.length());