저같은 경우도 TextView에 자동 링크를 어떻게 구현할까 고민하다가 다행이게도 자동 링크 기능이 안드로이드에 내장되어있다는 사실을 알게 되었습니다.
Activity에서와 xml에서 자동 링크 설정을 정의할 수 있고 Linkify와 Autolink로 나뉩니다.
사용 예제는 아래 내용과 같습니다.
==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 같은 경우에는 전체 링크를 말합니다.
자동 링크를 거는 것에 대해 변수가 있다면 이 방법을 사용하는 것을 권장합니다.
반면에 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
이런 방법으로 한후 문자열 중에 링크가 있을때 자동링크처리가 되는걸 확인하실 수 있습니다.
도움이 되셨나요?
그럼 손가락을 눌러주세요:)
'Development > Android' 카테고리의 다른 글
안드로이드 개발 - 설치시 이클립스 Timeout 오류 해결하기 (0) | 2014.03.06 |
---|---|
안드로이드 개발 - 연락처 선택/정보 가져오기(ACTION_PICK) (4) | 2013.10.04 |
[Android/JAVA] 자바 연산자(그리고, 또는, etc)를 사용하여 효과적으로 개발하기 (0) | 2013.03.15 |
안드로이드 개발 - 공유(Share) 기능 추가하기 (0) | 2013.03.09 |
안드로이드 개발 - R.drawable.변수 R.string.변수 사용하기 (1) | 2013.03.08 |