Есть 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);

Ошибка состояла в том, что вы выполняли преобразование в массив во время инициализации массива, который вообще не нужен.

Другие вопросы по тегам