如何将循环值添加到arraylist?

时间:2013-03-05 08:19:13

标签: java android arraylist

我有一个活动,通过JSON获取值。运行for循环。我从JSON接收所提取对象中存在的所有值。但是,我想将所有值附加到ArrayList,即image_urls。有人可以帮帮我吗?

public class AndroidJSONParsingActivity extends ListActivity {

    private static String url = "http://www.ttt.com/album_pro/array_to_encode";

    JSONArray folio = null;
    ArrayList<String> urlList = new ArrayList<String>();
    public static ArrayList<String> image_urls = new ArrayList<String>();

    @SuppressLint("NewApi")
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder()
                .permitAll().build();
        StrictMode.setThreadPolicy(policy);

        JSONParser jParser = new JSONParser();
        try {
            JSONObject json = jParser.getJSONFromUrl(url);
            // Log.v("URL",json.toString());

            JSONObject seo = json.getJSONObject("SEO");
            // Log.v("seo",seo.toString());
            JSONArray folio = seo.getJSONArray("Folio");
            Log("ARRAY-FOLIO0" + folio);

            JSONArray image_urls1 = new JSONArray();
            String s1 = seo.getString("Folio");
            for (int i = 0; i < folio.length(); i++) {
                String m = folio.getString(i);
                Log.v("M" + i, m);
                image_urls.add(folio.getString(i) + ",");
                Log("JSON-ARRAY-->" + image_urls.add(folio.getString(i)));
            }

        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    private void Log(String string) {
        Log.v("SEO-TEST", string);

    }
}

以下是我得到的logcat响应

03-05 13:58:25.948: V/M0(3241): http://www.tt.com/media/imagepath/portfolio_images/http_arctictern.tt_folio_portfolio_a_grade_motor_school.html_a_poftfolio_2013_01_11.png
03-05 13:58:25.948: V/SEO-TEST(3241): JSON-ARRAY-->true
03-05 13:58:25.948: V/M1(3241): http://www.tt.com/media/imagepath/portfolio_images/http_arcticterntt_folio_portfolio_abc_tarps.html_a_poftfolio_2013_01_10.png
03-05 13:58:25.948: V/SEO-TEST(3241): JSON-ARRAY-->true
03-05 13:58:25.948: V/M2(3241): http://www.tt.com/media/imagepath/portfolio_images/http_arctictern.tt_folio_portfolio_able_scale.html_a_poftfolio_2013_01_10.png
03-05 13:58:25.948: V/SEO-TEST(3241): JSON-ARRAY-->true
03-05 13:58:25.948: V/M3(3241): http://www.tt.com/media/imagepath/portfolio_images/http_arctictern.tt_folio_portfolio_accent_aluminum_windows.html_a_poftfolio_2013_01_10.png
03-05 13:58:25.948: V/SEO-TEST(3241): JSON-ARRAY-->true
03-05 13:58:25.948: V/M4(3241): http://www.tt.com/media/imagepath/portfolio_images/http_arctictern.tt_folio_portfolio_access_health.html_a_poftfolio_2013_01_10.png
03-05 13:58:25.948: V/SEO-TEST(3241): JSON-ARRAY-->true
03-05 13:58:25.948: V/M5(3241): http://www.tt.com/media/imagepath/portfolio_images/http_arctictern.tt_folio_portfolio_acmeda__zipscreen.html_a_poftfolio_2013_01_11.png
03-05 13:58:25.948: V/SEO-TEST(3241): JSON-ARRAY-->true
03-05 13:58:25.948: V/M6(3241): http://www.tt.com/media/imagepath/portfolio_images/http_arctictern.tt_folio_portfolio_aditya_birla_minerals.html_a_poftfolio_2013_01_10.png
03-05 13:58:25.948: V/SEO-TEST(3241): JSON-ARRAY-->true
03-05 13:58:25.948: V/M7(3241): http://www.tt.com/media/imagepath/portfolio_images/http_arctictern.tt_folio_portfolio_advanced_corporate_badges.html_a_poftfolio_2013_01_10.png
03-05 13:58:25.948: V/SEO-TEST(3241): JSON-ARRAY-->true
03-05 13:58:25.948: V/M8(3241): http://www.tt.com/media/imagepath/portfolio_images/http_arctictern.tt_folio_portfolio_aerotech_fans.html_a_poftfolio_2013_01_10.png
03-05 13:58:25.948: V/SEO-TEST(3241): JSON-ARRAY-->true
03-05 13:58:25.948: V/M9(3241): http://www.tt.com/media/imagepath/portfolio_images/http_arctictern.tt_folio_portfolio_agriculture_victoria_services_.html_a_poftfolio_2013_01_10.png
03-05 13:58:25.948: V/SEO-TEST(3241): JSON-ARRAY-->true

3 个答案:

答案 0 :(得分:0)

ArrayList<String> values = new ArrayList<String>();
for (int i=0; i<folio.size(); ++i) {
    values.add(folio.getString(i));
}

答案 1 :(得分:0)

您的日志标记打印为true,因为您已在邮件中添加"image_urls.add(folio.getString(i))",如果成功添加项目,此行将返回true。     请现在查看如下

 ArrayList<String > image_urls1 = new JSONArray(); //Use arrayList here
                String s1 = seo.getString("Folio");
                for (int i = 0; i < folio.length(); i++) {
                    String m = folio.getString(i);
                    Log.v("M" + i, m);
                    image_urls1 .add(folio.getString(i) + ",");//adding here
                    Log("JSON-ARRAY-->" + image_urls1.get(i) ); // printing the current element
                }

答案 2 :(得分:0)

true表示您的添加成功。 您必须创建其他for循环数组才能获取添加的值。 还有这个

for (int i = 0; i < folio.length(); i++) {
    String m = folio.getString(i);
    Log.v("M" + i, m);
    image_urls.add(folio.getString(i) + ",");
    Log("JSON-ARRAY-->" + image_urls.add(folio.getString(i)));
}
由于字符串连接,

将在每次迭代时创建三个StringBuilder个对象。