2016-03-03 33 views
0

我得到一個html字符串,並且我想從它們中提取href字符串,並僅將這些值設置爲可點擊以在將它們設置爲TextView之前啓動一些自定義活動。我已經試過這如何從字符串中提取href並使其可點擊

CharSequence sequence = Html.fromHtml(textPost.getDescription()); 
SpannableStringBuilder strBuilder = new SpannableStringBuilder(sequence); 
URLSpan[] urls = strBuilder.getSpans(0, sequence.length(), URLSpan.class); 
for(URLSpan span : urls) { 
     int start = strBuilder.getSpanStart(span); 
     int end = strBuilder.getSpanEnd(span); 
     int flags = strBuilder.getSpanFlags(span); 
     ClickableSpan clickable = new ClickableSpan() { 
       public void onClick(View view) { 
        Log.d("Home Activity", "Clicked yay");   
       } 
     }; 
     strBuilder.setSpan(clickable, start, end, flags); 
     strBuilder.removeSpan(span); 
} 
textHolder.content.setText(strBuilder); 

這突出顯示的文本,但是當我點擊他們的日誌消息沒有得到打印

+0

你究竟想要什麼: - 在texview中可點擊或鏈接的emaoil id我在文本視圖也是可克服的? –

+0

該文本視圖中可點擊的鏈接。我有一個html字符串,看起來像這樣「Clickable Part這是另一個隨機文本。我只想將「可點擊部分」設置爲可點擊 –

+0

您的textview數據是固定的還是動態的? –

回答

0

從字符串中提取的超級鏈接

Pattern.compile("[a-z]+:\/\/[^ \n]*").matcher(
"download_recording true Package available http://ab.com click the link").find(); 

並作出它可點擊的

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

單擊我希望它啓動自定義活動不啓動瀏覽器。 –

+0

@ShashankUdupa ..你在textview上的點擊事件是數字還是文本或超鏈接? –

+0

在api調用後,我得到一個html字符串,如String response =「Clickable text Random stuff」。我需要在TextView中設置這個字符串,使其成爲「Clickable text Random stuff」,當點擊「Clickable text」時,一個新的活動開始。 –

相關問題