Android html.form html

时间:2013-07-06 12:41:31

标签: java android

我想将html标签读取到TextView,所以我这样做了:

titolo = (TextView) this.findViewById(R.articolo.titolo);
        testo = (TextView) this.findViewById(R.articolo.testo);
        titolo.setText(db.getTitolo());
        testo.setText(db.getTesto());
        testo.setText(Html.fromHtml(testo));

但我在这里有一个错误:testo.setText(Html.fromHtml(testo));为什么?

这个应用程序从数据库中检索数据,所以我希望如果我写入数据库,例如hello,使用html.fromhtml将其格式化为粗体

2 个答案:

答案 0 :(得分:1)

public static Spanned fromHtml (String source)

从提供的HTML字符串返回可显示的样式文本。 HTML中的任何标记都将显示为一般替换图像,然后您的程序可以通过该图像替换为真实图像。

这使用TagSoup来处理真实的HTML,包括在野外发现的所有破碎。

更多信息@

http://developer.android.com/reference/android/text/Html.html

这个

 testo = (TextView) this.findViewById(R.articolo.testo); // textview initialized

 testo.setText(Html.fromHtml(testo)); // wrong

fromHtml将字符串作为参数

应该是

 testo.setText(Html.fromHtml("myhtmlString"));

示例:

  String s ="<b>"+"Hello"+"</b>";
  TextView tv = (TextView) findViewById(R.id.textView1);
  tv.setText(Html.fromHtml(s));  

答案 1 :(得分:0)

在您的示例中,您将TextView发送到fromHtml,您应该提供String变量。该字符串可以包含HTML标记。

TextView testo = (TextView) findViewById(R.articolo.testo);
String formattedText = "This is <b>bold</b>";
testo.setText(Html.fromHtml(formattedText));

当然你可以从DB获得String。我不知道你的getTesto()方法是如何工作的,但是如果它返回String你可以写:

TextView testo = (TextView) findViewById(R.articolo.testo);
String formattedText = db.getTesto();
testo.setText(Html.fromHtml(formattedText));