안드로이드에서 앱을 사용하다보면 인터넷 링크나, 전화번호 이메일 등 누르면 추가적인 액션을 할 수 있도록 링크가 걸어집니다.
저같은 경우도 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
이런 방법으로 한후 문자열 중에 링크가 있을때 자동링크처리가 되는걸 확인하실 수 있습니다.
도움이 되셨나요?
그럼 손가락을 눌러주세요:)