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


当前回答

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

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

其他回答

我不会得到setSelection()方法直接,所以我做如下和 魅力工作

EditText editText = (EditText)findViewById(R.id.edittext_id);
editText.setText("Updated New Text");
int position = editText.getText().length();
Editable editObj= editText.getText();
Selection.setSelection(editObj, position);

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

例子:

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

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

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

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

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

或者把

<requestFocus />

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

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