使用StringBuilder附加String

时间:2013-03-25 00:49:34

标签: java android string android-spinner stringbuilder

我正在尝试使用布局获取我在Spinner中选择的所有项目。我正在动态创建Spinner并动态地将项添加到Spinner,这就是我在这里使用layout来获取ChildElement的原因。

以下是代码: -

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。我确定,我使用追加的方式不正确。

任何人都可以帮助我吗?谢谢你的帮助。

1 个答案:

答案 0 :(得分: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("]");