-2

レイアウトを使用して、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 に答える