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


当前回答

使用下面的行

e2.setSelection(e2.length());

e2是编辑文本对象名称

其他回答

如果我们直接使用editText.setSelection(position),有时编辑文本光标不会出现在特定位置;. 那样的话,你可以试试

editText.post(new Runnable() {
                @Override
                public void run() {
                    editText.setSelection(string.length());
                }
            });

Edittext中的setSelection(int index)方法应该允许您这样做。

其中position为int型:

editText1.setSelection(position)

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

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

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

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中设置光标的起始和结束位置