728x90

URL을 연결하는 2가지 방법이 있다.

 

방법1. AutoLink - XML에서 직접 URL 정의하기(Layout에서 정의하기)

<TextView
                android:id="@+id/textView_Guide"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="http://연결할 웹 주소를 기록하시면 됩니다."
                android:autoLink="web"/>

특징

1) android:text에 지정한 웹 URL이 텍스트로 앱 화면에 그대로 표출된다.

2) 그러므로 1)과 같이 주소가 텍스트로 표출되는 것을 원하지 않을 경우에는 방법2를 통해 작업하는 것을 추천한다.

 

AutoLink 유형

NONE android:autoLink="none"
e-mail android:autoLink="email"
주소 android:autoLink="map"
인터넷 URL android:autoLink="web"
전화번호 android:autoLink="phone"
모든연결 android:autoLink="all"

 

 

방법2. Linkify - Activity에서 URL 정의하기((JAVA에서 정의하기)

protected void onCreate(Bundle savedInstanceState) {

....... 코드 생략 .........

textView_Guide = (TextView)findViewById(R.id.textView_Guide);
textView_Guide.setText("여기로 이동할 거에요.");

Pattern pattern1 = Pattern.compile("여기");
Linkify.TransformFilter transformFilter = new Linkify.TransformFilter() {
     @Override
     public String transformUrl(Matcher match, String url) {
          return "";
     }
 };
 
Linkify.addLinks(textView_Guide, pattern1, "연결한 실제 url을 입력해주세요.", null, transformFilter);

특징

1) 방법1에서와 같이 실제 URL이 텍스트형태로 표출되지 않고, textView_Guide.setText()에 입력한 글자에 URL을 연결시키게 된다.

2) textView_Guide.setText()에 입력한 문장 중 특정 글자에만 URL을 연결하고자 할 경우, Pattern.compile()를 사용하여 연결하고자 하는 글자만 지정한다. 이렇게 하면 지정한 글자에만 URL 연결이 활성화 된다.

3) Linkify.TransformFilter()를 반드시 사용해야 한다. 연결할 실제 url뒤에 이상한 문자가 붙지 않도록 하기 위해 transformUrl() 메소드의 return값은 ""로 처리해 줘야 한다.

 

Linkify 자동 링크 설정 유형

모든연결 Linkify.ALL
e-mail Linkify.EMAIL_ADDRESSES
주소  Linkify.MAP_ADDRESSES
인터넷 URL Linkify.WEB_URLS
전화번호 Linkify.PHONE_NUMBERS
(사용예시)
textView_Guide = (TextView)findViewById(R.id.textView_Guide);
Linkify.addLinks(textView_Guide, Linkify.WEB_URLS);

 

 

 

♥ 제 글이 도움이 되셨을까요? 공감버튼 클릭 부탁드려요 :)

728x90

+ Recent posts