如何在请求焦点后将EditText光标位置恢复到末尾

5

当我多次请求编辑文本框的焦点时,即使有一些文本,它也会将光标移动到开头。我们如何将光标放置在已经存在的文本后面?


2
可能是https://dev59.com/4m025IYBdhLWcg3wGB0n的重复问题。 - Orkun
4个回答

12

这将把光标设置到文本的最后一个位置:

editText.setSelection(editText.getText().length());

0
在布局中,给EditText添加android:ellipsize属性,设置为"end",如下所示:android:ellipsize="end" 希望这对你有所帮助。

0

编辑文本具有一个名为append的属性。我认为下面这行代码也能达到同样的目的。

editText.append("");

0

我有一个类似的需求,当用户想要编辑并点击EditText时,光标应该在末尾。我使用以下方法实现了相同的效果:

edtDisplayName.setOnTouchListener(new OnTouchListener() {

        @Override
        public boolean onTouch(View v, MotionEvent event) {

            if (event.getAction() == MotionEvent.ACTION_UP || event.getAction() == MotionEvent.ACTION_DOWN) {

                edtDisplayName.setSelection(edtDisplayName.getText()
                        .length());

                edtDisplayName.requestFocus();

                //Open key board for user to edit
                Commons.showKeyBoard(OnBoardActivity.this, edtDisplayName);

                return true;

            }

            return false;
        }
    });

这是我打开键盘的方法:

public static void showKeyBoard(Context context, View view) {
    InputMethodManager imm = (InputMethodManager) context
            .getSystemService(Context.INPUT_METHOD_SERVICE);
    imm.showSoftInput(view, 0);
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接