안드로이드에서 앱을 사용하다보면 인터넷 링크나, 전화번호 이메일 등 누르면 추가적인 액션을 할 수 있도록 링크가 걸어집니다.

저같은 경우도 TextView에 자동 링크를 어떻게 구현할까 고민하다가 다행이게도 자동 링크 기능이 안드로이드에 내장되어있다는 사실을 알게 되었습니다.


안드로이드 개발 - 안드로이드 TextView 자동 링크걸기[Linkify, Autolink](인터넷, 이메일, 지도, 전화번호)

Activity에서와 xml에서 자동 링크 설정을 정의할 수 있고 Linkify와 Autolink로 나뉩니다.

1. Activity(java)에서 자동링크 설정하기 - Linkify

사용 예제는 아래 내용과 같습니다.

==Example==

public class LinkifyActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        TextView txtPhone1 = (TextView)findViewById(R.id.txtPhone1);
        Linkify.addLinks(txtPhone1, Linkify.PHONE_NUMBERS);
        
        TextView txtPhone2 = (TextView)findViewById(R.id.txtPhone2);
        Linkify.addLinks(txtPhone2, Linkify.PHONE_NUMBERS);
        
        TextView txtWeb = (TextView)findViewById(R.id.txtWeb);
        Linkify.addLinks(txtWeb, Linkify.WEB_URLS);
    }
}


 
이 외에도 Linkify의 자동 링크 설정 종류입니다.

모든연결    => Linkify.ALL

e-mail      => Linkify.EMAIL_ADDRESSES

주소         => Linkify.MAP_ADDRESSES

인터넷 URL => Linkify.WEB_URLS

전화번호    => Linkify.PHONE_NUMBERS

TextView를 정의하고 자신이 자동링크를 걸 링크 종류를 지정해주시면 됩니다. ALL 같은 경우에는 전체 링크를 말합니다.

자동 링크를 거는 것에 대해 변수가 있다면 이 방법을 사용하는 것을 권장합니다.

2. xml(Layout)에서 자동링크 설정하기 - AutoLink
  
반면에 xml TextView에서 손쉽게 자동링크 기능 옵션을 추가할 수 있습니다.
TextView를 Activity에서 생성하는것 또는 자동링크를 지정하는데에 변수가 없다면 이 방법을 추천드립니다.

예제 :
 <TextView
  android:id="@+id/txtAutoWeb"
  android:layout_width="fill_parent"
  android:layout_height="wrap_content"
  android:autoLink="web"
  android:text="http://tarks.net" />

 
  TextView에 android:autolink=""을 삽입하는 방법으로 자동링크 유형을 지정합니다.

자동링크 유형입니다. 자신에 알맞은 유형을 선택하여 TextView에 정의해주시면 됩니다.

NONE        => android:autoLink="none"

e-mail      => android:autoLink="email"

주소         => android:autoLink="map"

인터넷 URL => android:autoLink="web"

전화번호    => android:autoLink="phone"

모든연결    => android:autoLink="all"

참고한 사이트

http://blog.naver.com/PostView.nhn?blogId=ovter&logNo=135936941



이런 방법으로 한후 문자열 중에 링크가 있을때 자동링크처리가 되는걸 확인하실 수 있습니다.


도움이 되셨나요?
그럼 손가락을 눌러주세요:)