2011-04-22 6 views
4

about 상자에 Twitter 프로필에 대한 링크를 추가하려고합니다. 이메일 주소 및 웹 주소와 같은 '보통'링크 about.xml에HREF를 Android strings.xml에서 사용할 수 없습니다.

android:autoLink="email|web" 

에 의해 처리되지만, 트위터 프로필 페이지 내 strings.xml의에서 HTML 코드를 사용해야합니다. 시도 : 약

<string name="twitter">Follow us on &lt;a href=\"http://www.twitter.com/mytwitterprofile"&gt;Twitter: @mytwitterprofile&lt;/a&gt;</string> 

about 상자에 html 마크 업을 표시합니다. 텍스트를 표시

<string name="twitter">Follow us on <a href="http://www.twitter.com/mytwitterprofile">Twitter: @mytwitterprofile</a></string> 

는 "트위터에 우리를 따르라 : @mytwitterprofile를"

는 I도 해봤지만 하이퍼 링크가 아닙니다.

어떻게하면 간단한 작업을 할 수 있습니까?!

건배, 베리

+0

당신이 문자열을 추가하려면 어떻게 당신의 상자? – rajath

+0

TextView textView = (TextView) findViewById (R.id.about_content); \t \t textView.setTextColor (Color.WHITE); \t \t textView.setText (getString (R.string.about_text, getString (R.string.twitter), getString (R.string.email_address), getString (R.string.website))); – barry

+0

이 게시물이 도움이되는지 확인해보십시오. http://stackoverflow.com/questions/1997328/android-clickable-hyperlinks-in-alertdialog – rajath

답변

5

간단한에게 대답은 TextView<a> 태그를 지원하지 않는다는 것입니다. AFAIK는 <b>, <i><u>과 같은 기본 서식 만 지원합니다. 당신이 android:autoLink="web", 다음과 같은 문자열을 제공 할 경우, :

<string name="twitter">Follow us at twitter.com/mytwitterprofile</string> 

android:text="@string/twitter" 같은 XML을 통해 설정 적절한 링크 (로 twitter.com/mytwitterprofile으로 바뀔 것이다, 당신은 코드에서 설정하려는 경우를, 당신은 Html.fromHtml 방법 누군가가 필요합니다 답변에 게시 됨).

+0

고마워. 완벽하지는 않지만 그렇게 할 것입니다. 덧붙여 말하자면, Html.fromHtml도 필요하지 않았습니다. (내 about.xml은 android : autoLink = "email | web"를 가지고 있습니다.) – barry

2

내가 '문자열'을 사용하여 연결하는 방법을 너무 잘 모르겠지만, 당신이 fromHtml를 사용하여 글고 또는 텍스트 뷰의 텍스트를 설정할 수 있습니다 ...

TextView text = (TextView) findViewById(R.id.text); 
text.setText(Html.fromHtml("<a href=\"http://www.google.com\">Google Link!</a>")); 
text.setMovementMethod(LinkMovementMethod.getInstance()); 
+0

답장을 보내 주셔서 감사합니다.하지만이 링크는 하이퍼 링크가 아닌 "Google Link!" – barry

+0

text.setMovementMethod (LinkMovementMethod.getInstance()); 클릭 가능한 링크로 만들어야합니까?! –

+0

불행히도 일반 텍스트가 아닙니다. – barry

7

"a href"링크 태그는 strings.xml 내에 있고 strings.xml이 파싱 될 때 태그로 파싱됩니다. 원하지 않는 태그입니다. 당신은 XML의 CDATA 사용하여 태그를 무시해야 할 필요가 의미 :

<string name="sampleText">Sample text <![CDATA[<a href="www.google.com">link1</a>]]></string>

을 그리고 당신은 Html.fromHtml()를 계속하고 클릭 LinkMovementMethod로 만들 수 있습니다

TextView tv = (TextView) findViewById(R.id.textHolder); 
tv.setText(Html.fromHtml(getString(R.string.sampleText))); 
tv.setMovementMethod(LinkMovementMethod.getInstance()); 
+2

나는 CDATA 섹션을 닫아야한다고 생각합니다. 샘플 텍스트 link1]]>

+0

네, 잡아줘서 고마워. 편집 됨. – dule

관련 문제