오랜만에 글을 쓰게 되었다.

오늘은 안드로이드 앱 개발을 하다가 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로 시작하는 숫자들만 전화 앱으로 연결된다.



블로그 이미지

미네르바98

안드로이드와 영화 리뷰, 생활정보에 관한 내용을 기재합니다.

,