마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

EditText랑 TextView에서의 selection이 서로 다른 의미인가요?

0 추천

EditText의 현재 커서 위치를 받아오기 위해

getSelectionStart() 함수를 사용하였습니다.

pos = mTv.getSelectionStart();			// offset of cursor
layout = mTv.getLayout();
line = layout.getLineForOffset(pos);	// line number of cursor position

baseline = layout.getLineBaseline(line);	// y position of line
ascent = layout.getLineAscent(line);

x = layout.getPrimaryHorizontal(pos);
y = baseline + ascent;

 

그런데 EditText 객체 자체에 터치 이벤트가 일어나는 걸 막기 위해

EditText를 TextView로 바꿔보려고 했는데요,

EditText를 사용할 때와 달리 위 코드의 x,y 값이 바뀌질 않네요.

 

질문 쓰면서 생각해보니 TextView나 EditText나 터치 이벤트 일어나는 건 마찬가지일 거 같아서

바꾸는 게 소득없는 짓인거 같긴한데;;

그래도 걍 개인적인 궁금증에 질문드립니다.

제가 selection의 개념을 정확히 모르고 있는 것 같아서요.

doc에는 selection anchor 또는 cursor offset이라고 되어있고

EditText의 해당 함수는 TextView를 상속한거라

얼핏 생각하면 같은 값을 반환할 것 같은데...

어떤 건가요?ㅜㅜ

 

+) getSelectionStart()와 getSelectionEnd(), 또는 selection anchor와 selection edge는 어떻게 다른가요?

소다나 (600 포인트) 님이 2014년 3월 3일 질문

1개의 답변

0 추천
 
채택된 답변
getSelection 이 커서의 위치를 가져오는 것으로 알고 있는데

EditText는 입력을 하는 기능이고 TextView 는 출력을 하는 기능입니다.

TextView 에서는 커서가 없으니 x, y값을 가지고 오지 못하는것이 아닐까요?

+) http://blog.naver.com/PostView.nhn?blogId=moonysl&logNo=140149201812 추가로 질문주신것의 답변 입니다.
카이래이언 (2,700 포인트) 님이 2014년 3월 4일 답변
소다나님이 2016년 10월 8일 채택됨
...