如何在edittext中将光标设置在end

Dev*_*i M 4 android

每当我触摸edittext时,光标应该在end.Even如果editText已经有一些文本,它不应该允许移动左奖

 editTextView.setOnTouchListener(new View.OnTouchListener() {
                @Override
                public boolean onTouch(View v, MotionEvent event) {

                    editTextView.onTouchEvent(event);

                    if(!textFocus) {
                        editTextView.setSelection(editTextView.getText().length());
                        textFocus = true;
                    }

                    return true;
                }
            });

            editTextView.setOnFocusChangeListener(new View.OnFocusChangeListener() {
                @Override
                public void onFocusChange(View v, boolean hasFocus) {
                    textFocus = false;
                }
            });
Run Code Online (Sandbox Code Playgroud)

Vuk*_*sić 6

您可以扩展 EditText 并覆盖 onSelectionChanged 函数。

例如:

    public class CustomEditText extends EditText {
         public CustomEditText(Context context, AttributeSet attrs) {
             super(context, attrs);
         }

         public CustomEditText(Context context) {
             super(context);
         }

         public CustomEditText(Context context, AttributeSet attrs, int defStyle) {
             super(context, attrs, defStyle);
         }

         @Override 
         protected void onSelectionChanged(int selStart, int selEnd) {
              this.setSelection(this.getText().length());
         }
    }
Run Code Online (Sandbox Code Playgroud)

在 XML 中,您应该使用 yourpackagename.CustomEditText 而不是 EditText。


Dev*_*i M 5

这对我有所帮助.总是当我触摸edittext时,光标将在最后

editTextView.setOnTouchListener(new View.OnTouchListener() {
                @Override
                public boolean onTouch(View v, MotionEvent event) {
                    editTextView.onTouchEvent(event);
                    editTextView.setSelection(editTextView.getText().length());
                    return true;
                }
            });
Run Code Online (Sandbox Code Playgroud)