2013-03-25 99 views
-2

我正在嘗試使用佈局來獲取我在Spinner中選擇的所有項目。我正在動態創建Spinner,並動態地將項目添加到Spinner,所以這就是我在這裏使用佈局獲取ChildElement的原因。使用StringBuilder追加字符串

下面是代碼: -

int count = layout.getChildCount(); 

StringBuilder jsonString = new StringBuilder(); 

View v = null; 
int j = 1; 
for(int i=0; i<count; i++) { 
    v = layout.getChildAt(i); 

    if(v instanceof Spinner) { 
     jsonString.append("["+j+":"+((Spinner) v).getSelectedItem()+"]"); 

     j++; 
    } 
} 

問題陳述: -

這是一個簡單的字符串操作問題。

我目前有5 Spinner。所以我想這樣做jsonString

[1:CS,2:EE,3:RE,4:TT,5:UU] 

這裏CS,EE,RE,TT,UU是我在5 Spinner

但是我的代碼已選擇的內容,我的jsonString是越來越像顯示這 -

[1:CS][2:EE][3:RE][4:TT][5:UU] 

我怎樣才能讓jsonString像我想要的方式。我確定,我使用append的方式不正確。

任何人都可以幫助我嗎?謝謝您的幫助。

+0

你上面寫的代碼嗎?因爲如果你不想要右括號,你不應該明確地添加它們。無論哪種情況,您試圖製作的「json」都是無效的。 – 323go 2013-03-25 01:05:18

回答

2

該解決方案看起來很簡單。你已經把'['和']'放在循環的append中,每次迭代都會附加方括號。試試以下內容(我還沒有測試過)

int count = layout.getChildCount(); 

    StringBuilder jsonString = new StringBuilder(); 

    View v = null; 
    int j = 1; 
    jsonString.append("["); 
    for(int i=0; i<count; i++) { 
     v = layout.getChildAt(i); 

     if(v instanceof Spinner) { 
      jsonString.append(j+":"+((Spinner) v).getSelectedItem()); 

     if (j != count) //if this is not the last spinner 
      jsonString.append(","); 
     j++; 
     } 
    } 
    jsonString.append("]");