2012-08-02 51 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> 
相關問題