Есть ArrayList хочет преобразовать его в массив, я использовал много способов, но не удалось
У меня есть массив с JSON-значениями. Я хочу преобразовать его в массив, затем я отправлю его в MapActivity. Я перепробовал много способов, но потерпел неудачу.
for (int i = 0; i < matchFixture.length(); i++)
{
JSONObject c = matchFixture.getJSONObject(i);
String matchId = c.getString(TAG_MATCHID);
Log.d("matchId", matchId);
// hashmap for single match
HashMap<String, String> matchFixture = new HashMap<String, String>();
// adding each child node to HashMap key => value
matchFixture.put(TAG_MATCHID, matchId);
matchFixtureList.add(matchFixture);
//item=matchFixtureList.get(0).toString();
String[] stockArr = matchFixtureList.toArray(new String[matchFixtureList.size()]);
stockArr = matchFixtureList.toArray(stockArr);
for(String s : stockArr)
System.out.println(s);
}
2 ответа
Решение
Вы пытаетесь набрать HashMap
к String
Ваша карта -
// hashmap for single match
HashMap<String, String> matchFixture = new HashMap<String, String>();
// adding each child node to HashMap key => value
matchFixture.put(TAG_MATCHID, matchId);
И вы добавляете matchFixture
(которая является картой) к ArrayList
(который должен быть списком HashMaps)
matchFixtureList.add(matchFixture);
Теперь, если вы хотите конвертировать matchFixtureList
к массиву, то вы должны сделать так -
HashMap<String,String>[] stockArr = new HashMap[matchFixtureList.size()];
stockArr = matchFixtureList.toArray(stockArr);
for(HashMap<String,String> map : stockArr)
for(Map.Entry<String,String> entry : map.entrySet()){
Log.d("debug", entry.getKey() + ","+ entry.getValue());
}
Изменить следующие строки
String[] stockArr = matchFixtureList.toArray(new String[matchFixtureList.size()]);
stockArr = matchFixtureList.toArray(stockArr);
в
String[] stockArr = new String[matchFixtureList.size()];
stockArr = matchFixtureList.toArray(stockArr);
Ошибка состояла в том, что вы выполняли преобразование в массив во время инициализации массива, который вообще не нужен.