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


当前回答

提醒一下:如果你正在使用edittext.setSelection()来设置光标,并且它在设置alertdialog时不起作用,请确保在对话框创建后设置selection()

例子:

AlertDialog dialog = builder.show();
input.setSelection(x,y);

其他回答

使用下面的行

e2.setSelection(e2.length());

e2是编辑文本对象名称

如果要将光标设置在n个字符之后 从右向左,然后像这样。

edittext.setSelection(edittext.length()-n);

如果edittext的文本像

version<sub></sub>

你想把光标从右移到第6位

然后它将移动光标在-

    version<sub> </sub>
                ^

其中position为int型:

editText1.setSelection(position)

如果你想把光标放在EditText上的某个位置,你可以使用:

yourEditText.setSelection(position);

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

yourEditText.setSelection(startPosition, endPosition);

请注意,设置选择可能很棘手,因为你可以把光标放在字符的前面或后面,下图解释了在这种情况下如何建立索引:

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

记住在setSelection之前调用requestFocus()用于edittext。