-2

我正在尝试使用布局获取我在 Spinner 中选择的所有项目。我正在动态创建 Spinner 并将项目动态添加到 Spinner,这就是我在这里使用布局来获取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按照我想要的方式制作。我敢肯定,我使用 append 的方式不正确。

有谁可以帮我离开这里吗?谢谢您的帮助。

4

1 回答 1

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("]");
于 2013-03-25T01:06:06.813 回答