EditText.setSelection(结束)没有效果?

Jac*_*cob 8 android android-layout

我用下面的代码设置cursorendcustomEditText(的EditText),但它带来的任何影响.

customEditText.setOnFocusChangeListener(new OnFocusChangeListener() {
            @Override
            public void onFocusChange(View v, boolean hasFocus) {
                 if (hasFocus) {
                    String customEditTextText = customEditText.getText().toString();
                    int selection = customEditTextText.length();
                    customEditText.setSelection(selection);
                }
            }
});
Run Code Online (Sandbox Code Playgroud)

对此有什么想法吗?

res*_*her 9

对我有用:

editText.requestFocus();
editText.setSelection(editText.getText().length());
Run Code Online (Sandbox Code Playgroud)

  • 这应该是公认的答案。还有,正确的做法。 (2认同)

小智 7

我在AlertDialog中遇到了与EditText相同的问题.我的解决方案是这样的:

    mEditText.post(new Runnable() {
        @Override
        public void run() {
            mEditText.setSelection(mEditText.length());
        }
    });
Run Code Online (Sandbox Code Playgroud)


Cod*_*dey 6

这对我有用

mEditText.postDelayed(new Runnable() {
                    @Override
                    public void run() {
                        mEditText.setSelection(mEditText.getText().length());
                    }
                }, 50);
Run Code Online (Sandbox Code Playgroud)

不知道为什么,但需要使用postDelayed才能使其工作。只是post不工作


ess*_*ess 0

尝试这个

customEditText.setSelection(customEditText.getText().length()-1);
Run Code Online (Sandbox Code Playgroud)