2012-06-20 6 views
2

필자는 커서를 여러 줄 Edittext에서 위아래로 이동할 수있는 Button을 구현해야한다는 요구 사항이 있습니다. Android : 여러 줄 편집 텍스트에서 커서를 다음 줄로 이동하는 방법?

나는 개발자 웹 사이트를 통해 가서 http://developer.android.com/reference/android/text/Selection.html 을 사용할 수 Selection 클래스를 발견,하지만 난

감사합니다 ..

여기 제발 도와주세요 .. 사용할 수 없습니다입니다.

+0

try EditText의 public void setSelection (int index) – vrs

+0

setSelection (int index) - 이것을 사용하여 커서를 edittext의 끝과 끝으로 이동할 수 있지만 어떻게 그것을 여러 줄의 다음 줄로 옮길 수 있습니까? – Nilesh

+0

이것을 확인하십시오. http://stackoverflow.com/questions/9804670/edittext-line-number-and-currentline-cursor-position – vrs

답변

1

자료 : http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/4.0.3_r1/android/text/Selection.java

나는 내 수업에 추가 된 다음 코드를 복사하여 아래에 약간의 수정을했다.


public boolean moveDown(Layout layout) { 
     int start = myTextbox.getSelectionStart(); 
     int end = myTextbox.getSelectionEnd(); 

     if (start != end) { 
      int min = Math.min(start, end); 
      int max = Math.max(start, end); 

      myTextbox.setSelection(max); 

      if (min == 0 && max == myTextbox.length()) { 
       return false; 
      } 

      return true; 
     } else { 
      int line = layout.getLineForOffset(end); 

      if (line < layout.getLineCount() - 1) { 
       int move; 

       if (layout.getParagraphDirection(line) == 
        layout.getParagraphDirection(line + 1)) { 
        float h = layout.getPrimaryHorizontal(end); 
        move = layout.getOffsetForHorizontal(line + 1, h); 
       } else { 
        move = layout.getLineStart(line + 1); 
       } 

       myTextbox.setSelection(move); 
       return true; 
      } 
     } 

     return false; 
    } 

나는이 유용하게 사용될 수 있기를 바랍니다.

누군가가 그것을 다시하지 않고 실제 메서드를 사용하는 방법을 알고있는 경우, 공유하시기 바랍니다 : D

1

그냥 다음 URL에서 코드를 통해 이동 ....이 코드에 대한 확실하지 오전하지만 일부 연장에 당신을 도움이 될 수 있습니다. 나는 당신이 해결책을 찾아내는 것을 도울지도 모른다.

http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/4.0.3_r1/android/text/Selection.java

+0

본 적이 있지만 사용법을 이해하지 못했습니다. 나는 혼란 스럽다 !! 주로 어떻게이 클래스를 초기화합니까? 그리고 ** moveDown (Spannable text, Layout layout) ** 메소드의 매개 변수에 무엇을 씁니까? – Nilesh

0

시도 :

editText.append ("\ n")를;

그러면 커서가 다음 줄로 이동합니다.

관련 문제