如何在TextView中标记单词

时间:2017-03-13 01:32:11

标签: java android html textview

我的资产文件夹中有一个.txt文件,其中包含大量HTML ...

我将其称为字符串,使用JSoup Library删除一些HTML标记,并将此字符串设置为TextView的文本:

InputStream is;
TextView tv = (TextView)findViewById(R.id.tv);
String html;

try {
    is = getAssets().open("html.txt");
    html = convertStreamToString(is);
} catch (Exception e) {
    e.printStackTrace();
}

Document doc = Jsoup.parse(html);

Elements links = doc.select("a[href]");
for (Element link : links) {
    doc.select("a").unwrap();
}

doc.select("title").remove();

tv.setText(fromHtml(html));

它导致TextView显示非常大且漂亮的格式化HTML代码

当用户触摸该TextView中的任何单词时,我想更改单词的背景颜色,标记它,并在用户重新启动应用程序时再次标记该标记......我怎么能实现这一点?

修改

另外,我如何一起使用SpannableHtml.fromHtml()

1 个答案:

答案 0 :(得分:0)

  1. 这篇文章可以帮助您获得单词的索引。 OnClick Position in String in TextView。保存单词的起始索引。

  2. 从索引到单词结尾,使用spannablestring突出显示单词。 How to search for a word in a string and highlight word in a text view in android?

  3. 当您再次加载文本时,您可以对存储的单词索引执行相同的操作。