Динамическая вставка строки в массив строк в Android - PullRequest
8 голосов
/ 04 августа 2011

Я получаю некоторые данные в виде ответа JSON с сервера.Я извлекаю нужные мне данные и хочу поместить эти данные в массив строк.Я не знаю размер данных, поэтому я не могу объявить массив как статический.Я объявляю динамический массив строк:

String[] xCoords = {};

После этого я вставляю данные в массив:

   for (int i=0; i<jArray.length(); i++) {
         JSONObject json_data = jArray.getJSONObject(i);
         xCoords[i] = json_data.getString("xCoord");
   }

Но я получаю

java.lang.ArrayIndexOutOfBoundsException
Caused by: java.lang.ArrayIndexOutOfBoundsException

способ динамически вставлять строки в массив строк?

Ответы [ 2 ]

38 голосов
/ 04 августа 2011

Используйте ArrayList, хотя он на самом деле не нужен, а просто изучите его :

ArrayList<String> stringArrayList = new ArrayList<String>();

   for (int i=0; i<jArray.length(); i++) {
         JSONObject json_data = jArray.getJSONObject(i);
         stringArrayList.add(json_data.getString("xCoord")); //add to arraylist
   }

//if you want your array
String [] stringArray = stringArrayList.toArray(new String[stringArrayList.size()]);
6 голосов
/ 04 августа 2011

Попробуйте вот так

 String stringArray[];        
 stringArray=new String[jArray.length()];
 String xCoords[]=new String[jArray.length()];;

       for (int i=0; i<jArray.length(); i++) {
             JSONObject json_data = jArray.getJSONObject(i);
             xCoords[i] = json_data.getString("xCoord");
       }
...