我正在基於從xml文章中解析的文本動態地在活動上填充textviews。該文本是使用HTML標籤格式化,所以我喜歡設置文本:如何知道TextView的哪一部分被選中
textViewBody.setText(Html.fromHtml(content));
的文章被設置爲無論是在身體的網站一些文字,到另一個地方的文章,或簡單地顯示文本。之前,我們只有最多1個鏈接,所以我用這個代碼:
textViewBody.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (textViewBody.getUrls().length != 0) {
String link = textViewBody.getUrls()[0].getURL();
Intent i;
if (link.startsWith("article")) {
i = new Intent(getActivity().getApplicationContext(), ArticleActivity.class);
i.putExtra("file", link.substring(10));
i.putExtra("title", parentView.article.title);
startActivity(i);
} else if (link.startsWith("http")) {
i = new Intent(Intent.ACTION_VIEW);
i.setData(Uri.parse(link));
startActivity(i);
}
} else {
// Regular body text was selected.
}
}
});
這完美地工作,但現在的一些文章有多個鏈接,只打開第一個(因爲那是什麼我設定它)。我的問題是,我怎樣才能設置textview知道我點擊了什麼鏈接?再說一遍,這段文字是動態的(並且大約有200多篇xml文章),所以我不可能僅僅根據已知的鏈接列表來檢查字符串的內容。
可能很重要的一點是,這是在一個片段上完成的(ArticleActivity是一個tabHost,其中一個標籤顯示文章的文本)。
選定的文本花了一些額外的代碼到位,但是這使我我的解決方案。 –