有两个EditText,在加载页面时,在第一个EditText中设置了一个文本,所以现在光标将位于EditText的起始位置,我想在第二个EditText中设置光标的位置,其中不包含数据。如何做到这一点?


当前回答

在kotlin中,你可以像这样创建一个扩展函数:

fun EditText.placeCursorAtLast() {
    val string = this.text.toString()
    this.setSelection(string.length)
}

然后简单地调用myEditText.placeCursorAtLast()

其他回答

让editText2是你的第二个EditText视图。然后将以下代码放在onResume()中

editText2.setFocusableInTouchMode(true);
editText2.requestFocus();

或者把

<requestFocus />

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

我相信最简单的方法就是使用填充。

Say in your xml's edittext section, add android: paddingLeft = " 100 dp” This will move your start position of cursor 100dp right from left end.

同理,你可以用 android: paddingRight = " 100 dp” 这将把你的光标的结束位置从右端向左移动100dp。

要了解更多细节,请查看我博客上的这篇文章:Android:在EditText Widget中设置光标的起始和结束位置

这段代码将帮助您将光标显示在编辑文本的最后一个位置。

 editText.requestFocus();
 editText.setSelection(editText.length());

我想在不包含数据的编辑文本中设置光标位置

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

或者您的意思是当您的活动打开时,您希望将焦点集中到您的EditText ?在这种情况下,它的requestFocus()

如果要在EditText中设置光标位置?试试下面的代码

EditText rename;
 String title = "title_goes_here";
 int counts = (int) title.length();
 rename.setSelection(counts);
 rename.setText(title);