오랜만에 글을 쓰게 되었다.
오늘은 안드로이드 앱 개발을 하다가 autolink 기능을 구현할 일이 있었다.
찾아보니까 TextView에서 해당 기능을 제공하고 있다는 것.
그래서 정리해본다.
1. TextView를 사용하는 xml
textView에 autolink 속성을 추가해야한다.
android:autoLink = "all" 혹은 android:autoLink = "web|phone|email" 을 해도 좋다.
2. java 파일
자바파일에서는 해당 textView에 setClickable(true) 속성을 반드시 주어야 한다.
SpannableString spannableString = new SpannableString(memo); ClickableSpan clickableSpan = new ClickableSpan() { @Override public void onClick(View view) { TextView textView = (TextView)view; String s = textView.getText().toString(); } }; spannableString.setSpan(clickableSpan, 0, memo.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); spannableString.setSpan(new UnderlineSpan(), 0, memo.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); mMemo.setText(memo); mMemo.setClickable(true); mMemo.setMovementMethod(LinkMovementMethod.getInstance()); |
여기까지만 하면, TextView에 autoLink 를 볼 수 있을 것이다.
그런데, 한가지 주의사항이 있다.
숫자를 입력하면 숫자를 눌러서 전화 앱으로 연결이 되어야 하는데 이부분에서 문제가 발생한 것처럼 보인다.
1로 시작하는 글자의 경우는 링크가 성공적이고 그 외의 숫자로 시작해서는 안되고...머 그런...
그렇지만, 이건 언어별로 차이가 있다.
그러니 셋팅 앱에 가서 영어, 한국어, 등의 각종 언어로 설정한 후 다시 테스트를 진행해야한다. 이를 테면, 영어로 설정하면 1로 시작하는 숫자들만 전화 앱으로 연결된다.
'[미네르바's IT] > [미네르바's 안드로이드]' 카테고리의 다른 글
itcookbook 안드로이드 스튜디오를 활용한 안드로이드 프로그래밍 자료 (0) | 2018.12.13 |
---|---|
이것이 안드로이드다 PPT 자료 공유 (0) | 2018.12.12 |
처음 시작하는 자바 프로그래밍 연습문제 풀이 정답지 (1) | 2018.01.10 |
안드로이드 자바 변수 이름 선언 규칙 (0) | 2017.12.19 |
안드로이드 자바 변수 - 숫자형, 논리형 (0) | 2017.12.18 |