0

arraylist から値を 1 つずつ取得して に設定したいのですがTextView、できませんでした。私のコードは次のとおりです。

try {
        // Getting Array of Contents
        jsonArrar = json.getJSONArray(TAG_CONTENTS);

        // looping through All Contents
        for(int i = 0; i < jsonArrar.length(); i++){
            JSONObject c = jsonArrar.getJSONObject(i);
            list = new ArrayList<String>();

            String id1=jsonArrar.getJSONObject(i).getString(TAG_ID);                

            list.add(id1);
        }

        Iterator<String> iterator = list.iterator();
        builder = new StringBuilder();
        while (iterator.hasNext()) {
            String string = iterator.next();                
            builder.append(string+"\n");

        }

        textView.setText(builder);

上記の方法で、私は最後の値のみを取得します。それについて誰でも歓迎します。

4

1 に答える 1

1

ループの前にリストを宣言する必要があり、forループでは要素を追加するだけです。

list = new ArrayList<String>();    
for(int i = 0; i < jsonArrar.length(); i++){
        JSONObject c = jsonArrar.getJSONObject(i);


        String id1=jsonArrar.getJSONObject(i).getString(TAG_ID);                

        list.add(id1);
}

あなたのアプローチでは、のすべての要素がjsonArrar新しいリストとして宣言されているためjsonArrar.length()、最後のリストのみにアクセスできるリストが作成されます(他の参照はもうありません)。

于 2013-03-03T19:54:04.973 に答える