android how to set the EditText Cursor to the end of its text

46,198

Solution 1

You have two options, both should work:

a)

editText.setText("Your text");
editText.setSelection(editText.getText().length());

b)

editText.setText("");    
editText.append("Your text");

Solution 2

/**
 * Set pointer to end of text in edittext when user clicks Next on KeyBoard.
 */
View.OnFocusChangeListener onFocusChangeListener = new View.OnFocusChangeListener() {
    @Override
    public void onFocusChange(View view, boolean b) {
        if (b) {
            ((EditText) view).setSelection(((EditText) view).getText().length());
        }
    }
};

mEditFirstName.setOnFocusChangeListener(onFocusChangeListener);
mEditLastName.setOnFocusChangeListener(onFocusChangeListener);

It work good for me!

Share:
46,198
William Kinaan
Author by

William Kinaan

Updated on December 17, 2020

Comments

  • William Kinaan
    William Kinaan over 3 years

    The user has to enter his mobile number, the mobile number has to be 10 numbers, I used TextWatcher to do that, like this

    et_mobile.addTextChangedListener(new TextWatcher() {
    
        @Override
        public void onTextChanged(CharSequence s, int start, int before,
                int count) {
            // TODO Auto-generated method stub
    
        }
    
        @Override
        public void beforeTextChanged(CharSequence s, int start, int count,
                int after) {
            // TODO Auto-generated method stub
    
        }
    
        @Override
        public void afterTextChanged(Editable s) {
            // TODO Auto-generated method stub
            if (et_mobile.getText().toString().length() > 10) {
                et_mobile.setText(et_mobile.getText().toString()
                        .subSequence(0, 10));
                tv_mobileError.setText("Just 10 Number");
            }else{
                tv_mobileError.setText("*");
            }
        }
    });
    

    but the problem is when the user enters the 11th number, the cursor of the edittext starts from the beginning of the text, I want it to still at the end, how?