TextView에서 일부 글자에만 Link를 삽입하고 싶을 때 쓰는 방법입니다.
Linkify는 텍스트 조각과 정규식을 가져와 텍스트의 모든 정규식 일치 항목을 클릭 가능한 링크로 바꿔줍니다.
private void setLinkify() {
Linkify.TransformFilter transformFilter = (matcher, s) -> "{이동하고 싶은 url}";
Pattern pattern = Pattern.compile("{링크를 연결하고 싶은 텍스트}");
Linkify.addLinks(_binding.agree2, pattern, "", null, transformFilter);
}
Linkify.MatchFilter
패턴과 일치하는 문자 범위를 검사하고 일치를 실행 가능한 링크로 전환해야 하는지 결정합니다.
MatchFilter를 사용하면 링크가 되는 항목과 그렇지 않은 항목을 더 많이 제어할 수 있습니다.
예를 들어 웹 URL을 연결할 때, http://www.example.com 뿐만 아니라 example.com 와 같은 것도 연결하길 원할 것입니다.
그러나 support@example.com와 같은 도메인은 비교하고 싶지는 않을 것입니다.
따라서 웹 URL 패턴에 대해 연결할 때 기호(@) 바로 앞에 오는 경우, MatchFilter로 포함할 수 있습니다.
Linkify.TransformFilter
일치하는 텍스트를 검사하고 이를 통과시키거나 Matcher 상태의 데이터를 사용하여 대체 텍스트를 생성합니다.
TransformFilter를 사용하면 클라이언트 코드에서 일치하는 패턴이 URL로 표시되는 방식을 더 잘 제어할 수 있습니다.
예: (919) 555-1212와 같은 전화번호를 tel: URL로 변환할 때 괄호, 공백 및 하이픈을 제거해야 tel:9195551212가 생성됩니다.
'Android > UI-UX 디자인' 카테고리의 다른 글
Android Jetpack ComposeUI 기초 문법 및 특징 (0) | 2024.08.24 |
---|---|
[Android/Webview]안드로이드 웹뷰에서 html 코드 가져오기 (0) | 2023.08.26 |
[Android/Layout]TextView에서 끝에 .. 처리하기 (1) | 2023.02.25 |
[Android/Layout]소스에서 컬러에 알파값 추가하기 (0) | 2023.02.25 |
[Android/Layout]xml에서 tools 란? (0) | 2023.02.25 |