본문 바로가기
공부하는 하스씨/안드로이드

텍스트 뷰에서 특정 라인 문자열 가져오기!

by 박하스. 2018. 8. 7.
728x90
반응형

텍스트 뷰에서 개행문자 '\n' 로만 줄이 바꾸면 split 이나 indexOf 로도 대략 유추할수 있겠지만.


대부분 멀티라인 텍스트뷰는 word-wrap에 의해서 줄이 바뀌는 만큼. 


두번째 줄의 문자열.... 을 가져오려고 하면 막막하더라.




그러던 차에. 요런 트릭 (?? 사실 그냥 메소드 ㅋㅋㅋ) 을 배웠다.



TextView tvTest = findViewById(R.id.textview_test); 

 //  XML 에서나, setText 호출을 통해서 여러줄의 텍스트를 입력 했다 치고.


int lineIndex = 1;   // 첫번째 줄은 0 번 인텍스부터다.  즉, 1은 두번째 줄.


int beginIndex = tvTest.getLayout().getLineStart(lineIndex);

int endIndex = tvTest.getLayout().getLineEnd(lineIndex); // 사실 getLindeEnd(int line) 은 내부적으로 getLineStart(line +1) 을 호출하고 있더라.

//  즉 int endIndex = tvTest.getLayout().getLineStart(lineIndex+1) 과 완전히 동일하다.


String target = tvTest.getText().toString().substring(beginIndex, endIndex);



이렇게 target 문자열을 득 했다!!!!

728x90
반응형