在ArrayList <string>中添加循环中的字符串

时间:2017-09-18 14:42:14

标签: java android arraylist

我正在解析jsonData并从中获取video_url。我的要求是在ArrayList中添加video_url。我已经尝试了所有内容并在我的logCat中获得结果:

E/VIDEO URL: [https://firebasestorage.googleapis.com/v0/b/myhovi-android.appspot.com/o/MySavedVideo%2FJIMyHoviVideo.mp4?alt=media&token=c103543e-31f0-4682-9b44-09d679c76699]
E/VIDEO URL: [https://firebasestorage.googleapis.com/v0/b/myhovi-android.appspot.com/o/MySavedVideo%2FBMMyHoviVideo.mp4?alt=media&token=9bcf98a1-dad1-4f63-864f-7559ef1d49c1]

现在在这里你可以清楚地看到video_url以这种格式出现了我想要的包含两个url的单个ArrayList。

这是我为打印所需结果所做的代码,但它没有成功:

private void jsonParsingVideoData(String projectVideos, String projectId) throws JSONException{

        JSONArray jsonArray = new JSONArray(projectVideos);

        ArrayList<String> video_url = null;
        for(int i=0; i< jsonArray.length() ; i++){
            JSONObject jObject = jsonArray.getJSONObject(i);

            video_url = new ArrayList<>(Arrays.asList(jObject.getString("video_url")));
            Log.e("VIDEO URL", video_url.toString());
        }
 }

我也尝试过这种方式,但它失败了,如果我这样做的话就只有一个输出。

for( String string : video_url){
   ArrayList<String> string1 = new ArrayList<>();
   string.add(string);
   Log.e("LOGS", string1.toString());
}

对于上面的代码,输出只有一个,格式为:

E/LOGS: [https://firebasestorage.googleapis.com/v0/b/myhovi-android.appspot.com/o/MySavedVideo%2FBMMyHoviVideo.mp4?alt=media&token=9bcf98a1-dad1-4f63-864f-7559ef1d49c1]

请帮助我,我已经尝试了很多。谢谢。

1 个答案:

答案 0 :(得分:7)

您正在每次循环迭代中创建一个新的ArrayList。您应该使用add代替!

private void jsonParsingVideoData(String projectVideos, String projectId) throws JSONException{
    JSONArray jsonArray = new JSONArray(projectVideos);

    ArrayList<String> video_urls = new ArrayList<String>();
    for(int i = 0; i < jsonArray.length(); i++){
        JSONObject jObject = jsonArray.getJSONObject(i);

        video_urls.add(jObject.getString("video_url"));
    }
}