공부하는 하스씨/안드로이드

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

박하스. 2018. 8. 7. 16:14
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
반응형