2016-07-28 98 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; 
     } 
    });