0

我有一个带有 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);
}
4

2 回答 2

0

您正在尝试将 a 类型转换HashMap为 aString 您的地图是 -

 //  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());
       }
于 2016-04-14T21:13:49.147 回答
0

更改以下行

String[] stockArr = matchFixtureList.toArray(new String[matchFixtureList.size()]);
stockArr = matchFixtureList.toArray(stockArr);

String[] stockArr = new String[matchFixtureList.size()];
stockArr = matchFixtureList.toArray(stockArr);

错误是您在数组初始化期间正在转换为数组,这根本不需要。

于 2016-04-14T21:05:54.510 回答