我想将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将其格式化为粗体
答案 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));