サーバーから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
文字列を文字列配列に動的に挿入する方法は何ですか?
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()]);
このようにしてみてください
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");
}
Javaの文字列配列には、宣言時に指定する必要のある定義済みのサイズがあります。要素を追加または削除して後で変更することはできません。動的配列の純粋な概念はJavaに存在しません。-- ここで詳細な記事を読んでください...
これは固定サイズの配列を宣言する正しい方法です。
String[] myString = new String[5];
fruits[0]="hello";
fruits[1]="hello";
fruits[2]="hello";
fruits[3]="hello";
fruits[4]="hello";
代わりに、リストを使用して同様のタスクを実行できます。リストは純粋に動的であり、実行時に複数の値を追加できます。これは、Javaを使用してAndroidでリストを宣言する正しい方法です。
ArrayList<String> fruits = new ArrayList<String>();
fruits.add("Value 1");
fruits.add("Value 2");
fruits.add("Value 3");
fruits.add("Value 4");
fruits.add("Value 5");
fruits.add("Value 6");
fruits.add("Value 7");
// add as much values as per requirement
// you can also use loops to add multiple values