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

时间:2016-09-20 09:28:15

标签: android

每当我触摸edittext时,光标应该在结尾。即使editText已经有一些文本而且它不应该允许左移奖励

class LinkedList<Item : NodeItem> {

    let head : Node<Item>

    init(head: Node<Item>) {
        self.head = head
    }

    func search(item: Item) -> Bool {

        var current : Node? = head

        while current != nil {
            if current?.item == item {
                return true
            }
            current = current?.next
        }
        return false
    }
} 

4 个答案:

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

答案 1 :(得分:4)

您可以扩展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());
         }
    }

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

答案 2 :(得分:2)

尝试以下代码段之一,它应该可以正常工作

a)

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

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

c)

   editText.append("");

答案 3 :(得分:0)

实际上没有这样的方法直接这样做,但是可以这样做,

editText.setText(editText.getText().toString);

焦点改变或你想要的地方。