Html.fromHtml不起作用

时间:2013-11-21 20:30:15

标签: android

我有一个textview,我希望在TextView的普通fontSize中显示0.0,然后在较小的文本大小中显示StringResult()。

如果我添加“0.0”+它不起作用。为什么呢?

public String StringResult(){
String displayLbl = this.getResources().getString(R.string.displayLbl);
TextView myUnitLbl = (TextView)findViewById(R.id.lbl_unit_res);
String myFinalLbl = displayLbl + " " + myUnitLbl.getText() + " ";
return myFinalLbl;
}


public void cmd_rst(View v){
TextView lblText = (TextView) findViewById(R.id.lblresult);
lblText.setText("0.0" + Html.fromHtml("<small>" + StringResult() + "</small>"));
}

2 个答案:

答案 0 :(得分:4)

这是因为当您尝试将其与“0.0”连接时,从Spanned返回的Html.fromHtml被用作普通字符串(从而丢失任何格式)。为了完成这项工作,请将所有内容传递到fromHtml

Html.fromHtml("0.0<small>" + StringResult() + "</small>")

同样的原则适用于更复杂的情况:

lblResult.setText(Html.fromHtml(String.format("%.1f", myCalc) + " " + "<br>" +
    "<small>" + StringResult() + "</small>"));

答案 1 :(得分:1)

只是

Html.fromHtml("0.0<small>" + StringResult() + "</small>")

更改为

Html.fromHtml("0.0<small>" + StringResult() + "</small>").toString()

因为fromHtml()方法接受Spanned类型的参数而不是String类型。