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


当前回答

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

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

其他回答

我不会得到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);

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

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

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

if(myEditText.isSelected){
    myEditText.setSelection(myEditText.length())
    }

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

EditText editText = findViewById(R.id.editText);
editText.setSelection(editText.getText().length());