Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

에이치의 모바일 앱 개발

View-TextView-link 본문

Android/Android 개발 소스

View-TextView-link

로이누리 2019. 2. 18. 19:13

기본적으로 TextView에 제공하는 자동 링크와, 개발자가 직접 생성하는 수동 링크에 대해 설명하겠습니다.


1. 자동링크에 관한 설명입니다.

TextView에는 AuthLink기능이 포함되어있습니다.

AutoLink 설정 종류로는 'all', 'email', 'map', 'none', 'phone', 'web' 가 있으며 각각의 정해진 패턴을 인식하여 링크 설정이됩니다.

(패턴에 관해서는 'android.text.util' < 'Linkify' < 'addLinks' 를 참조하시길 바랍니다.)


2. 수동링크에 관한 설명입니다.

HTML, Linkify, SpannableString 등 방법이 존재하지만 여기서는 Linkify와 SpannableString에 관해서만 예제 코드를 보여드리도록 하겠습니다.


2-1.예제 코드(Linkify)

String fullText = "TextView 의 다양한 활용법을 알아보는 주소입니다.";
String searchText = "주소";
binding.contentsTv.setText(fullText);
Linkify.TransformFilter transformFilter = new Linkify.TransformFilter() {
@Override
public String transformUrl(Matcher matcher, String s) {
// or ""
return null;
}
};
Pattern pattern = Pattern.compile(searchText);
Linkify.addLinks(binding.contentsTv, pattern, "http://minibot119.tistory.com/", null, transformFilter);

2-2.예제 코드(SpannableString)

String fullText = "TextView 의 다양한 활용법을 알아보는 주소입니다.";
String searchText = "주소";
ClickableSpan clickableSpan = new ClickableSpan() {
@Override
public void onClick(View view) {
Intent intent = new Intent(activity, MainActivity.class);
startActivity(intent);
}
};
SpannableString spannableString = new SpannableString(fullText);
spannableString.setSpan(clickableSpan, fullText.indexOf(searchText), fullText.indexOf(searchText) + searchText.length(), 0);
binding.contentsTv.setText(spannableString);

// 링크 포커스 생성
MovementMethod method = binding.contentsTv.getMovementMethod();
if ((method == null) || !(method instanceof LinkMovementMethod)) {
if (binding.contentsTv.getLinksClickable()) {
binding.contentsTv.setMovementMethod(LinkMovementMethod.getInstance());
}

}



'Android > Android 개발 소스' 카테고리의 다른 글

View-ImageView-Gradient  (0) 2019.02.20
Battery-Awake, Sleep  (0) 2019.02.20
롬곡 코드  (0) 2018.09.21
RESTful api란  (0) 2018.04.15
Android 개발 패턴 MVC, MVP, MVVP  (0) 2018.04.01
Comments