TextView에 링크 문자열만 있다면 click event를 처리할 수도 있지만 아래의 방법이 HTML 링크처럼 색상 변경및 밑줄까지 있으므로 훨씬 편하고 강력하다.
TextView link = (TextView) findViewById(R.id.link);
link.setText(Html.fromHtml("<a href=\"http://www.google.com\">google</a>"));
link.setMovementMethod(LinkMovementMethod.getInstance());
단 link.setText(Html.fromHtml(this.getString(R.string.url)); 처럼 HTML 포함한 String을 getString을 통해 가져올 때는 String id를 인코딩을 하기 때문에 string.xml 파일에 직접 쓰지말고 Layout 입력창을 이용해야한다. 그렇지 않으면 문자열을 인식하지 못한다.
메일 내용에서 웹주소, 이메일 주소, 전화번호등을 모두 파싱 - 정규식을 이용한다 - 하여 링크를 표시하고 싶은 경우에는 Linkify 개체를 사용하여 파싱할 수 있다.
TextView link = (TextView) findViewById(R.id.link);
link.setText(Html.fromHtml("<a href=\"http://www.google.com\">google</a>"));
link.setMovementMethod(LinkMovementMethod.getInstance());
단 link.setText(Html.fromHtml(this.getString(R.string.url)); 처럼 HTML 포함한 String을 getString을 통해 가져올 때는 String id를 인코딩을 하기 때문에 string.xml 파일에 직접 쓰지말고 Layout 입력창을 이용해야한다. 그렇지 않으면 문자열을 인식하지 못한다.
메일 내용에서 웹주소, 이메일 주소, 전화번호등을 모두 파싱 - 정규식을 이용한다 - 하여 링크를 표시하고 싶은 경우에는 Linkify 개체를 사용하여 파싱할 수 있다.
TextView noteView = (TextView) findViewById(R.id.noteview);더 자세한 내용은 http://developer.android.com/resources/articles/wikinotes-linkify.html 를 참고한다.
noteView.setText(someContent);
Linkify.addLinks(noteView, Linkify.ALL);
Pattern wikiWordMatcher = Pattern.compile("\\b[A-Z]+[a-z0-9]+[A-Z][A-Za-z0-9]+\\b");
String wikiViewURL = "content://com.google.android.wikinotes.db.wikinotes/wikinotes/";
Linkify.addLinks(noteView, wikiWordMatcher, wikiViewURL);
[출처] TextView 에 브라우저를 호출하는 URL 넣기|작성자 호주 다니엘
'Android > Tip&Tech' 카테고리의 다른 글
[개발 Tip] TextView내 글자가 흘러가는 효과(marquee) 주기 | 프로그래밍 팁 (1) | 2011.03.28 |
---|---|
Get android screen size (0) | 2011.03.25 |
Android task,stack,flag 자세한 설명 (0) | 2011.03.24 |
ActvityGroup에서 Spinner 사용시 오류 발행할 때 해결방안 (0) | 2011.03.24 |
android,spinner에서 선택된 값 가져오기 (1) | 2011.03.24 |