0

我需要能够遍历我的所有元素并将其设置为 Textview。但是,我还需要将我的数字格式化为下标。我尝试使用循环这样做,但只有最后一个数字的格式正确。

例如,如果我输入 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());

此外,任何下标的东西都会被切成两半。当我运行程序时,只会出现下标数字的上半部分。

知道如何解决这两个问题吗?

4

1 回答 1

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>
于 2012-08-04T00:15:26.377 回答