0

我必须向 Android 应用程序的 API 发出多个请求,但遇到以下问题:我有一个项目列表,我必须为每个项目发出请求,以便获取一些数据并将其显示在应用程序中。当我的列表大小为 1 时(如果我只有一项),该应用程序运行良好,但如果我有更多数据,我会将数据混合在一起,并且一项具有其他类似的价值。

我正在使用 JsonObjectRequest 和 Volley。我使用回调接口将请求数据发送回活动。我认为这可能是一个同步问题,但我不确定,我有点沮丧。我什么都试过了!

  • 请求代码:

    JsonObjectRequest request = new JsonObjectRequest(Request.Method.GET, urlMarket, null, new Response.Listener<JSONObject>() {
            @Override
            public void onResponse(JSONObject response) {
    
    
                try {
                    JSONObject singleResult;
                    singleResult = response.getJSONArray("result").getJSONObject(0);
                    coin.setHigh(singleResult.getDouble("High"));
                    coin.setLow(singleResult.getDouble("Low"));
                    coin.setLast(singleResult.getDouble("Last"));
                    coin.setVolInBtc(singleResult.getDouble("BaseVolume"));
                    coin.setBid(singleResult.getDouble("Bid"));
                    coin.setAsk(singleResult.getDouble("Ask"));
                    coin.setPrevDay(singleResult.getString("PrevDay"));
    
                    callback.onSuccess(coin);
                } catch (Exception e) {
                    e.printStackTrace();
                }
    
            }
        }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                error.printStackTrace();
            }
        });
    
        requestQueue.add(request);
    

任何形式的帮助将不胜感激!

PD.:如果有更好的方法来代替 JsonObjectRequest,请告诉我!

4

1 回答 1

1

考虑以下两个选项之一:

  1. 扩展 JSONObjectRequest 接受作为 Success/Error 回调的一部分返回的 id/token 字段。

  2. 在进行 API 调用之前,使用 final 字段作为标识符。假设您在循环中进行这些调用,然后您可以从匿名回调中引用这个最终字段来识别特定的 Stock。例如,您可以使用 ISIN、数据库 ID 或股票代码来识别响应。

于 2018-01-15T16:35:49.267 回答