我有一个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>"));
}
答案 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类型。