2016-07-28 70 views
0

移动光标,我能够通过使用的Android EditText上没有显示默认的键盘

setOnTouchListener(new OnTouchListener() { 
     @Override 
     public boolean onTouch(View v, MotionEvent event) { 
      Selection.setSelection(getText(), length()); 
      return true; 
     } 
    }); 

这光标不移动到点击位置隐藏默认的键盘。我需要将光标移到点击的位置。

+0

请参考[this](http://stackoverflow.com/a/14185131/5067493) –

回答

1

这一个工作通过创建一个单独的类扩展EditText。

setOnTouchListener(new View.OnTouchListener() { 
     @Override 
     public boolean onTouch(View v, MotionEvent event) { 
      switch (event.getAction()) { 
       case MotionEvent.ACTION_DOWN: 
        Layout layout = ((EditText) v).getLayout(); 
        float x = event.getX() + getScrollX(); 
        int offset = layout.getOffsetForHorizontal(0, x); 
        if (offset > 0) 
         if (x > layout.getLineMax(0)) 
          setSelection(offset);  
         else 
          setSelection(offset - 1); 
        break; 
      } 
      return true; 
     } 
    });