如何在请求焦点后将edittext游标位置恢复为结束

时间:2012-02-06 15:55:26

标签: android

当我几次请求editext的焦点时,即使有一些文本,它也会将光标移动到开头。我们如何将光标放置在它已经存在于其中的文本之后?

4 个答案:

答案 0 :(得分:7)

//这将聚焦文本的最后位置

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

答案 1 :(得分:0)

编辑文本有一个名为append的属性。我认为以下代码行也可用于此目的。

editText.append("");

答案 2 :(得分:0)

在布局EditText中,将android:ellipsize属性设置为此android:ellipsize="end"

希望这会有所帮助

答案 3 :(得分: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);
}