2012-08-02 47 views
0

我需要能够遍历所有元素并将其设置为Textview。不过,我也需要将我的数字格式化为下标。我试图通过使用循环,但只有最后一个数字格式正确。Spanned Textview HTML格式只适用于循环中的最后一个?

例如,如果我输入了Fe2Zn7Ag4,那么只有“4”会出现在下标中,其余的将会像正常一样。 这里是我的代码:

Spanned EF = Html.fromHtml(""); 
for(int g = 0; g < numSaved; g++) 
{ 
    EF = Html.fromHtml(EF + savedChem[g].getFormula()); 
    if(!(savedChem[g].getMoles().equals("1")) && !(savedChem[g].getMoles().equals("0"))) 
     EF = Html.fromHtml(EF + "<sub>" + savedChem[g].getMoles() + "</sub>"); 
} 
EmpiricalFormula.setText(findEmpirical()); 

而且,什么是标被削减一半。当我运行程序时,只会出现下标数字的上半部分。

任何想法如何解决这两个问题?

回答

1

我找到了我的答案。结果Html.fromHtml()将我以前的Spanned对象转换成每个循环的一个字符串,所以你只能以最后一个结束。我用下面的代码对此进行了修正:

Spanned[] E = new Spanned[numSaved]; 
for (int a = 0; a < numSaved; a++) 
{ 
    EF =(Spanned) TextUtils.concat(EF, E[a]); 
} 

我还通过添加“小”标签修正了我的下标问题。

<sub><small>" + savedChem[g].getMoles() + "</small></sub> 
相关问题